我的网站上有一个菜单,当用户点击链接时会显示并隐藏。
通常情况下,我会为此进行切换。但是,我在页面上有其他菜单,因此需要在显示它时关闭它们(我也在应用/删除动画类)。所以我认为最好的方法是在链接中添加一个close
类,然后对添加的类做出反应(因为其他菜单也有close
类)。
但是,Jquery似乎对通过Jquery添加的类没有反应。我一直在寻找这个,发现你可以使用Live()来达到这个目的。但是,live()现已折旧,您应该使用On()代替。
使用On的方法如下:
$('.anchor').on('click', '.close', function()
但它似乎不起作用。我也试过这种变化,但它们似乎都没有用。
如何让Jquery对已添加的类做出反应。
答案 0 :(得分:2)
绑定点击事件以记录.close
点击上的课程.anchor
,反之亦然。
$(document).on('click','.anchor', function() {
$(this).removeClass('anchor');
$(this).addClass('close');
// ...
和
$(document).on('click', '.close', function() {
$(this).removeClass('close');
$(this).addClass('anchor');
// ...
注意:最好将HTML包装在某个div中,并将事件绑定到该div,而不是将其绑定到整个文档。
<强>更新强>
甚至可以更好地更改.anchor
的密切链接上的课程并使用此代码。
$(document).on('click','.anchor', function() {
$('.anchor').addClass('close');
$('.anchor').removeClass('anchor');
// ...
和
$(document).on('click','.close', function() {
$('.close').addClass('anchor');
$('.close').removeClass('close');
// ...
答案 1 :(得分:0)
我认为您的问题是您的“关闭”链接未包含在具有“锚”类的元素中。因此,jQuery会查找它,但找不到该元素,也无法将click事件绑定到它。
如果您使用$('.close').on('click', function () { ... });
,它确实有用。
<强> Updated fiddle 强>