jQuery:将类添加到新元素后,可以't通过单击该类来触发事件

jQuery: after adding class to a new element, can't trigger event by clicking on that class

本文关键字:单击 事件 新元素 添加 jQuery 元素 可以      更新时间:2024-02-02

以下是我的尝试:当我用class.main点击一个元素时,该类将被重新分配给下一个元素。当点击下一个元素(新的.main元素)时,.main被重新分配给下一个元件,依此类推

$('.main').click(function() {
  $(this).removeClass("main").addClass("other");
  $(this).next().removeClass("other").addClass("main");
});

当我点击原始的.main元素时,类就被转移了。但是,单击new.main元素不会再次触发事件。是什么原因造成的?我这样做完全错了吗?

这是一把小提琴:

http://jsfiddle.net/UHLft/2/

事件绑定到DOM节点,而不是类名(当然,类名用于最初选择相关元素);因此,当类名更改时,事件不再绑定,因此需要使用on():将事件处理程序委托给父级

$('#container').on('click', '.main', function () {
    $(this).removeClass("main").addClass("other");
    $(this).next()
        .removeClass("other").addClass("main");
});

JS Fiddle演示。

参考文献:

  • CCD_ 2