开发者社区> 问答> 正文

如何用JQuery给新加载的元素添加点击事件,而不影响其他元素

我现在写的页面会动态加载一些元素,而这些元素都需要添加点击事件,但是如果每次新元素加载完我用类过滤器给这些元素添加点击事件,那么已经加载的元素又加了一次点击事件.

展开
收起
小旋风柴进 2016-05-27 08:53:15 2405 0
1 条回答
写回答
取消 提交回答
  • 很简单啊,事件代理。这种方式是最优雅的。楼上有 hack 成分。

    用楼上方式,你需要为页面上已存在元素的事件和动态添加元素的事件分别绑定一次。

    而事件代理,只须一次。并且代码简洁。

     $('body').on('click', 'button', function(){
       
     //....
     })

    这种把子元素(button)代理到父元素(body)的方式,可满足动态元素. 如上,动态添加的 button 也是有事件的。

    因为事件是作用在 body 上的,只要你body元素不是动态的,其子元素再怎么动态都是可以绑定的。

    当然,上面的 body 可以是任意你要动态添加的元素的父元素,但是这个父元素不能是动态添加的。

    手机码字不宜。

    2019-07-17 19:16:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载