首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery使用多个div激活相同的按钮,相同的布局

jQuery使用多个div激活相同的按钮,相同的布局
EN

Stack Overflow用户
提问于 2021-08-04 00:39:03
回答 1查看 27关注 0票数 1

我正在开发一个切换功能,用来替换动态生成的html的按钮。我想让按钮替换掉取消选择和选择按钮,但我遇到了一个问题,因为重复的按钮名称。

下面是我的代码:

代码语言:javascript
复制
$(document).on('click', '#select-image', function() {
    $('#deselect-image').show();
    $('#select-image').hide();
});
$(document).on('click', '#deselect-image', function() {
    $('#select-image').show();
    $('#deselect-image').hide();
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="190" class="image-flex">
    <img src="https://material.angular.io/assets/img/examples/shiba2.jpg" style="width:100px;height:100px;"><br>
    <span id="select-toggle">
        <button id="deselect-image" style="display:none;">Deselect</button>
        <button id="select-image">Select</button>
    </span>&nbsp;<button id="remove-image">X</button>
</div>
<div id="191" class="image-flex">
    <img src="https://material.angular.io/assets/img/examples/shiba2.jpg" style="width:100px;height:100px;"><br>
    <span id="select-toggle">
        <button id="deselect-image" style="display:none;">Deselect</button>
        <button id="select-image">Select</button>
    </span>&nbsp;<button id="remove-image">X</button>
</div>      
<div id="192" class="image-flex">
    <img src="https://material.angular.io/assets/img/examples/shiba2.jpg" style="width:100px;height:100px;"><br>
    <span id="select-toggle">
        <button id="deselect-image" style="display:none;">Deselect</button>
        <button id="select-image">Select</button>
    </span>&nbsp;<button id="remove-image">X</button>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-04 02:54:22

一种可能的方法是使用class属性而不是id,这样您就可以以更通用的方式使用按钮元素。

在下面的示例中,已经将deselect-imageselect-image设置为与按钮一起使用的类。jQuery处理已修改,以便同一类的每个按钮都有一个处理程序。

由于这些按钮首先与deselect-button成对出现,因此prev()next()函数会根据所单击的是哪个按钮来引用相反的按钮。

尝试下面的runnable示例。

代码语言:javascript
复制
$('.deselect-image').on('click', function() {
    $(this).next().show(); // the select-image button
    $(this).hide();
});

$('.select-image').on('click', function() {
    $(this).prev().show(); // the deselect-image button
    $(this).hide();
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="190" class="image-flex">
    <img src="uploads/img/AJ/a.jpg" style="width:100px;height:100px;"><br>
    <span id="select-toggle">
        <button class="deselect-image" style="display:none;">Deselect</button>
        <button class="select-image">Select</button>
    </span>&nbsp;<button id="remove-image">X</button>
</div>
<div id="191" class="image-flex">
    <img src="uploads/img/AJ/b90.jpg" style="width:100px;height:100px;"><br>
    <span id="select-toggle">
        <button class="deselect-image" style="display:none;">Deselect</button>
        <button class="select-image">Select</button>
    </span>&nbsp;<button id="remove-image">X</button>
</div>      
<div id="192" class="image-flex">
    <img src="uploads/img/AJ/c.jpg" style="width:100px;height:100px;"><br>
    <span id="select-toggle">
        <button class="deselect-image" style="display:none;">Deselect</button>
        <button class="select-image">Select</button>
    </span>&nbsp;<button id="remove-image">X</button>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68644153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档