jquery如何给不存在的元素添加事件?

jquery如何给不存在的元素添加事件?下面本篇文章就来给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

问题 :
jquery中给元素添加事件是很简单的,如:添加一个点击事件。

$(选择器).click(function(){ 
);

但是,项目中做了ajax分页,第一页直接加载,使用上述方法,完全没有问题。但是用在使用ajax分页,其它页的内容,都是后面通过innerHTML来进行添加,添加后的元素就没有相关的事件了。

其实,原因也很好理解就是在最开始添加事件时,其它页的元素并不存在,后面通过innerHTML添加后,标签是有了,但是对应的事件却是没有的。

那么,如何解决上面的总结呢??给不存在的元素也添加事件

解决方案:

使用live方法 : 给不存在的元素,绑定事件 。

live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。

$("#id").live("click", function () { 
  alert("ok"); 
});

但是,jquery 1.9+版本后,就删除了live方法. 那用什么方法来替换live呢?

答案,就是使用on方法

$("#id").on("click",function(){ 
           alert("ok"); 
   });

但是,使用了on方法,发现还是无效 ,语法没有问题,那为啥没效,答案是不应该这样写,如果是给不存在的元素添加事件,

要使用以下的写法:

$(document).on("click",'#id', 
     function(){ 
        alert("ok"); 
    });

更多web前端开发知识,请查阅 HTML中文网 !!

以上就是jquery如何给不存在的元素添加事件?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读