jQuery:将类添加到新元素后,不能通过单击该类来触发事件

 书友63901698 发布于 2023-02-13 15:32

这是我正在尝试的:当我点击一个带有类.main的元素时,该类被重新分配给下一个元素.单击下一个元素(新的.main元素)时,.main将重新分配给下一个元素,依此类推.这是我的代码:

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

当我单击原始.main元素时,将传输该类.但是,单击新的.main元素不会再次触发该事件.是什么导致这个?我完全是错误的做法吗?

这是一个小提琴:

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

1 个回答
  • 事件绑定到DOM节点,而不是类名(尽管类名当然用于初始选择相关元素); 因此,当类名更改时,事件不再受限,因此您需要将事件处理程序委托给父项on():

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

    JS小提琴演示.

    参考文献:

    on().

    2023-02-13 15:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有