JQuery绑定动态元素事件问题

实际场景

在一个网盘页面添加新建文件夹,确定后,在页面里追加元素。如果直接使用click()bind()会出现加载页面时不存在的元素(也就是后来追加到页面的元素)没有绑定点击事件。

确定新建文件夹

在页面新生成的文件夹,却没有点击事件,也就是我无法框选它等等。


解决方法

  • 使用.on(events, selector, callback)解决
    events:监听的事件
    selector:绑定事件的元素
    callback:事件触发的回调函数
    举个例子
fileBody.on('click', 'tr', function () {
        if (!$(this).hasClass('tr-hover')) {
            //  增加选中样式
            $(this).addClass('tr-hover');
            $(this).find('span').addClass('tr-click');
            i++;
        } else {
            //  移除选中样式
            $(this).removeClass('tr-hover');
            $(this).find('span').removeClass('tr-click');
            i--;
        }
        //  网盘具体功能的显示隐藏
        i > 0 ? $('.btn-group').css('display', '') : $('.btn-group').css('display', 'none');
        i > 1 ? $('.newName').addClass('disabled') : $('.newName').removeClass('disabled');
    });

其中fileBodytr的父级元素。

  • 使用.live()解决 不建议已被废除

参考资料来自SegmentFault


感谢小武不杀之恩,为了写博客,我们又被暴雨困在B9了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 4,943评论 0 1
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 5,288评论 0 2
  • //------------------------- 第一章 认识JQuery ----------------...
    米塔塔阅读 4,082评论 0 9
  • Attribute: $("p").addClass(css中定义的样式类型); 给某个元素添加样式 $("img...
    扑克脸_457e阅读 3,728评论 0 1
  • $(”p”).addClass(css中定义的样式类型); 给某个元素添加样式 $(”img”).attr({sr...
    专注寒冰三千岁阅读 3,508评论 0 4

友情链接更多精彩内容