解决使用jQuery采用append添加的元素事件无效的方法
2017-04-20 18:53
1226 查看
当我们使用jQuery动态加载html元素,但是元素上面又绑定了Click等事件,针对新添加的元素这些事件是无效的,那么应该怎样解决呢?
live( type, fn )
jQuery 1.3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。
目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。
还不支持 blur, focus, mouseenter, mouseleave, change, submit
与bind()不同的是,live()一次只能绑定一个事件。
这个方法跟传统的bind很像,区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说,如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时,对于这个新增加的li,其click事件依然可用。而无需重新给这种新增加的元素绑定事件。比如下面的代码。
但是随着jQuery的版本升级,自从jQuery 1.9及其以上已经无法使用live了,那么没有办法了吗,不是的,对于jQuery1.9版本及其以上可以使用on,其效果等同于live。下面的on的使用方法
live方法
live( type, fn )jQuery 1.3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。
目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。
还不支持 blur, focus, mouseenter, mouseleave, change, submit
与bind()不同的是,live()一次只能绑定一个事件。
这个方法跟传统的bind很像,区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说,如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时,对于这个新增加的li,其click事件依然可用。而无需重新给这种新增加的元素绑定事件。比如下面的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("button").live("click",function(){ $("p").slideToggle(); }); }); </script> </head> <body> <p>这是一个段落。</p> <button>请点击这里</button> </body> </html> |
on 方法
但是随着jQuery的版本升级,自从jQuery 1.9及其以上已经无法使用live了,那么没有办法了吗,不是的,对于jQuery1.9版本及其以上可以使用on,其效果等同于live。下面的on的使用方法1 2 3 4 5 6 7 | <script> $(document).on("click", ".waiting-save", function () { $(this).html('@T("Saving...")') $(this).attr("disabled", ""); SaveAction(this); }); </script> |
相关文章推荐
- 解决使用jQuery采用append添加的元素事件无效的方法
- 解决jQuery使用append添加的元素事件无效的方法
- live()解决Jquery采用append添加的元素事件无效和获取不到添加元素的值
- live()解决Jquery采用append添加的元素事件无效和获取不到添加元素的值
- live()解决Jquery采用append添加的元素事件无效和获取不到添加元素的值
- 解决jQuery使用append添加的元素事件无效的问题
- live()解决Jquery采用append添加的元素事件无效的
- jquery 解决使用append添加元素后监听事件消失的问题
- jquery无法为动态生成的元素添加点击事件的解决方法
- Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法
- 处理jQuery append加入的元素 绑定事件无效的方法
- 对于jquery 新加载的元素绑定事件无效的解决方法
- IE8下JQuery clone 出的select元素使用append添加option异常解决记录
- 对于js使用append追加的节点无法添加事件的解决方法
- jquery append添加的元素事件无效
- jquery无法为动态生成的元素添加点击事件的解决方法
- 使用append出的标签用on绑定事件无效的解决方法
- Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法
- jquery动态添加元素事件失效问题解决方法
- 使用Jquery的鲜活绑定(lively-ness),解决“新添加的元素,事件不可用”的问题