jQuery如何获取动态添加的元素
2017-12-27 15:56
197 查看
一、问题描述
用jQuery的append()方法动态添加了一段html代码之后,发现在为新添加的元素绑定click事件时无法获取该新元素。
二、解决方法
度娘推荐的方法基本是用live()方法
live()的官方定义和用法:
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
live()的详细使用方法可以查看jQuery live()
live()和bind()的区别就是live不仅可以给页面中现有的元素绑定事件,还可以给将来动态添加进来的元素绑定时间。
于是我用live()替换了bind(),但报出了新错误:TypeError: $(...).live is not a function
经过查询以后发现,原来是jQuery 1.9及其以上已经无法使用live(),可以用on()方法代替live().
on()的官方定义和用法:
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。
注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
on()的详细使用方法可以查看jQuery on()
三、代码演示
html页面:
?
test.js:
?
test.js中第6行实现了为动态添加的.new元素绑定click事件。应注意的是,虽然是为.new绑定事件,但on()方法却是绑定在原选择器<p>上的,然后将.new放在了参数列表中,原理参照上文on()的官方定义和用法。
用jQuery的append()方法动态添加了一段html代码之后,发现在为新添加的元素绑定click事件时无法获取该新元素。
二、解决方法
度娘推荐的方法基本是用live()方法
live()的官方定义和用法:
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
live()的详细使用方法可以查看jQuery live()
live()和bind()的区别就是live不仅可以给页面中现有的元素绑定事件,还可以给将来动态添加进来的元素绑定时间。
于是我用live()替换了bind(),但报出了新错误:TypeError: $(...).live is not a function
经过查询以后发现,原来是jQuery 1.9及其以上已经无法使用live(),可以用on()方法代替live().
on()的官方定义和用法:
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。
注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
on()的详细使用方法可以查看jQuery on()
三、代码演示
html页面:
?
?
相关文章推荐
- jQuery如何获取动态添加的元素
- jQuery如何获取动态添加的元素
- jQuery如何获取动态添加的元素
- jQuery如何获取动态添加的元素
- jquery 如何获取动态添加的元素
- jquery 获取动态添加后子节点的元素个数
- jQuery -- 如何为动态添加的元素绑定事件处理函数
- jquery 简短几句代码实现给元素动态添加及获取提示信息
- jquery get 获取元素与动态添加元素
- jQuery -- 如何为动态添加的元素绑定事件处理函数
- jquery依然简短几句代码实现给元素动态添加及获取提示信息
- jquery 如何为动态添加的元素绑定事件处理函数
- jquery创建的动态元素如何为元素添加相应事件
- jquery1.10获取append添加的动态元素
- 如何来使用jquery动态的往页面添加元素
- 关于Jquery append 动态添加元素后,获取不到元素对象情况
- jQuery1.9为动态添加元素绑定事件以及获取和操作checkbox的选择属性11
- jQuery -- 如何为动态添加的元素绑定事件处理函数
- 怎么使用jquery判断一个元素是否含有一个指定的类(class)另外如何给元素动态添加类
- jquery 简短几句代码实现给元素动态添加及获取提示信息