[英]addClass doesn't work (jQuery)
我是jQuery的新手,需要幫助。 我的addClass有點問題
這是HTML:
<div class="first">
Container 1
<div class="second hide">
Some text 1
<div class="close">close</div>
</div>
</div>
<div class="first">
Container 2
<div class="second hide">
Some text 2
<div class="close">close 2</div>
</div>
</div>
和jQuery
$("div.first").click(function() {
$("div.first").find("div.second").addClass('hide');
$(this).find("div.second").removeClass('hide');
});
$("div.close").click(function() {
$("div.close").parent().addClass('hide');
$(this).parent().addClass('hide');
});
我需要的。
我上面列出的所有作品。
現在,當單擊“關閉”時,我需要隱藏所有容器x.2。 我認為有沖突,但是我不知道在哪里。
您需要停止close
按鈕上click事件的傳播,否則您要單擊關閉,然后立即重新打開div。 嘗試這個:
$("div.first").click(function() {
$("div.second").addClass('hide');
$(this).find("div.second").removeClass('hide');
});
$("div.close").click(function(e) {
e.stopPropagation();
$(this).closest('.second').addClass('hide');
});
當您單擊.close
div時,這將導致調用2 click函數,因為它位於div.first
內部。
$("div.close").click(fu....
,這將導致div.first
隱藏。 $("div.first").click(fu....
,這將導致顯示div.first
您可以通過e.stopPropagation();
防止此行為e.stopPropagation();
:
$("div.first").click(function() {
$(".second").hide();
$(this).find(".second").show();
});
$("div.close").click(function(e) {
e.stopPropagation();
$(this).parent().hide();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.