gpt4 book ai didi

javascript - jquery 单击以使用 attr id 关闭当前 div

转载 作者:行者123 更新时间:2023-11-30 00:15:45 25 4
gpt4 key购买 nike

我在使用 jquery secon click to close opened div 时遇到一个问题。

我创建了这个 DEMO 来自 codepen.io

在此演示中,您可以看到有两个蓝色按钮 div。因此,在单击第一个按钮之前,在单击第二个按钮之后,第一个 <div class="emoWrap" id="ac1">没有关闭。

我尝试了以下js代码:

$(document).ready(function() {
$("body").on("click", ".button", function(e) {
e.stopPropagation();
var ID = $(this).attr("id");
$("#ac" + ID).toggleClass("emoWrap-active");
/*var $current = $(this).find('.emoWrap').toggleClass("emoWrap-active");
$('.emoWrap').not($current).removeClass('emoWrap-active');*/
});
$("body").click(function(){
$(".emoWrap").removeClass("emoWrap-active");
});
});

HTML

<div class="container">
<div class="button" id="1">1</div>
<div class="emoWrap" id="ac1">
<div class="Emojis">For 1</div>
</div>
</div>
<div class="container">
<div class="button" id="2">2</div>
<div class="emoWrap" id="ac2">
<div class="Emojis">For 2</div>
</div>
</div>

最佳答案

尝试 this codepen example ,我对其进行了编辑,以便在单击其他 emoWraps 时关闭所有其他 emoWraps。这也意味着它是可扩展的,只需将 IDAmount 更改为您拥有的 emoWraps 的数量。

这是编辑后的 ​​JavaScript 代码:

var IDAmount = 2;
$(document).ready(function() {
$(".button").on("click", function(e) {
e.stopPropagation();
var ID = $(this).attr("id");
$("#ac" + ID).toggleClass("emoWrap-active");
for(var i = IDAmount; i >= 1; i--){
if(i != ID){
$("#ac" + i).removeClass("emoWrap-active");
}
}
});
});

关于javascript - jquery 单击以使用 attr id 关闭当前 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34794115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com