Javascript Jquery remove类正在重新应用该类
我是jquery新手,正在尝试添加然后删除一个div类。首先,我用Javascript Jquery remove类正在重新应用该类,javascript,jquery,css,addclass,removeclass,Javascript,Jquery,Css,Addclass,Removeclass,我是jquery新手,正在尝试添加然后删除一个div类。首先,我用addClass()添加类名单击div时,然后我想通过单击链接将其删除。这是我到目前为止写的代码,但它不起作用。 我做错了什么 HTML: <div class="block yellow expandable skewX"> <div>Test</div> <span id="transp"> <a id="close">close</a> </
addClass()添加类名代码>单击div时,然后我想通过单击链接将其删除。这是我到目前为止写的代码,但它不起作用。
我做错了什么
HTML:
<div class="block yellow expandable skewX">
<div>Test</div> <span id="transp">
<a id="close">close</a>
</span>
</div>
$('.expandable').on('click', function () {
$(this).addClass('fullscreen');
});
$('#close').click(function () {
$('.expandable').removeClass('fullscreen');
});
注:
- 在firefox上,它的行为就像在单击链接时重新应用类一样
- 在Chrome上,链接不可单击
提前感谢这是因为在子项单击时会触发父项事件。您需要停止事件传播到子元素:
$('#close').click(function (e) {
e.stopPropagation()
$('.expandable').removeClass('fullscreen');
});
这是因为父事件在子单击时被触发。您需要停止事件传播到子元素:
$('#close').click(function (e) {
e.stopPropagation()
$('.expandable').removeClass('fullscreen');
});
您的问题是#close
是.expandable
的孩子。因此,当您单击#close
时,也会触发.expandable
上的click listener(单击侦听器)(这意味着您将删除该类,并在将其添加回后直接将其删除)
要解决您的问题,您应该确保您的结束项不是开始项的子项。您的问题是\close
是.expandable
的子项。因此,当您单击#close
时,也会触发.expandable
上的click listener(单击侦听器)(这意味着您将删除该类,并在将其添加回后直接将其删除)
要解决您的问题,您应该确保您的结束项不是开始项的子项。对相关代码本身提出疑问。对相关代码本身提出疑问。谢谢,工作顺利。我必须多读书。我第一次看到stopPropagation()。我现在就用谷歌搜索:)谢谢,工作得很完美。我必须多读书。我第一次看到stopPropagation()。我现在就用谷歌搜索:)