动态生成的html添加事件

1、问题描述html

  用jQuery的append()方法动态添加了一段html代码以后,发如今为新添加的元素绑定click事件时没法获取该新元素。app

2、解决方法函数

  度娘推荐的方法基本是用live()方法测试

  live()的官方定义和用法:.net

  live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。经过 live() 方法附加的事件处理程序适用于匹配选择器的当前及将来的元素(好比由脚本建立的新元素)。htm

  live()的详细使用方法能够查看jQuery live()事件

  live()和bind()的区别就是live不只能够给页面中现有的元素绑定事件,还能够给未来动态添加进来的元素绑定时间。get

  因而我用live()替换了bind(),但报出了新错误:TypeError: $(...).live is not a functionio

  通过查询之后发现,原来是jQuery 1.9及其以上已经没法使用live(),能够用on()方法代替live().function

  on()的官方定义和用法:

  on() 方法在被选元素及子元素上添加一个或多个事件处理程序。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。

  注意:使用 on() 方法添加的事件处理程序适用于当前及将来的元素(好比由脚本建立的新元素)。

   on()的详细使用方法能够查看jQuery on();

  总之,记住若是你要绑定动态生成的元素事件,必定要先找到他的父元素(父元素不能是动态生成的,不然继续往上找),在父元素中绑定,而后再进行过滤就ok了,对了,我测试了hover事件发现不行,没去深究缘由。

相关文章
相关标签/搜索