jquery append脚本增加的html onclick时间无法生效的原因以及解决方案

Posted gShow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery append脚本增加的html onclick时间无法生效的原因以及解决方案相关的知识,希望对你有一定的参考价值。

针对click, dblclick, mousedown, mouseup,等一些事件,它们处理的都是对当前匹配的元素的增加一个监听事件。但我们用append脚本增加html的时候相当于是未来匹配的,所以onclick肯定没有办法生效。

jQuery 1.3中新增live的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。
目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。
还不支持 blur, focus, mouseenter, mouseleave, change, submit

[javascript] view plain copy

  1. <script>    

  2. $(document).live("click"".waiting-save"function () {    

  3.  $(this).html('@T("Saving...")')    

  4.      $(this).attr("disabled""");    

  5.      SaveAction(this);    

  6.    });    

  7. </script>    




但是随着jQuery的版本升级,自从jQuery 1.9及其以上已经无法使用live了,那么没有办法了吗,不是的,对于jQuery1.9版本及其以上可以使用on,其效果等同于live,代码如下

[html] view plain copy

  1. <script>  

  2. $(document).on("click", ".waiting-save", function () {  

  3.  $(this).html('@T("Saving...")')  

  4.      $(this).attr("disabled", "");  

  5.      SaveAction(this);  

  6.    });  

  7. </script>  


以上是关于jquery append脚本增加的html onclick时间无法生效的原因以及解决方案的主要内容,如果未能解决你的问题,请参考以下文章

JQuery获取append后的动态元素:live()和on()

如何使用 jquery append 函数增加产品数量

怎么用jquery对动态加载的元素增加,或者修改元素样式

jQuery .append DOM 更新 [重复]

jquery append方法加标签class失效

jquery append 动态添加的元素事件on 不起作用的解决方案