开发过程中用Zepto/jquery给未来元素添加事件,live()无法使用解决方法

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

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

$("button").live("click",function(){
  $("p").slideToggle();
});

当live()不能用的时候如下:

jQuery出现的新添加元素点击事件无效,为什么呢?

原因: 

     因为append中的节点是在整个文档加载后才添加的,页面并不会为未来的元素初始化添加点击事件,所以使用这种方式动态添加的节点中的点击事件没有生效。

解决方法: 

     后来用事件委托的方法解决

     为所有类为imgItem的节点添加事件,$(document).on("click","指定的元素",function(){});是将指定的事件绑定在document上,只要而新产生的元素符合指定的元素,就会绑定此事件  ,而且这种方法当页面需要为多个节点初始化事件的时候,就不需要一个个加onclick事件

写法1       Js代码  

$(document).on("click","table a",function(){...}) 

写法2    Js代码 

$("table").on("click","a",function(){...})  
  1. $(document).on('click','.centent_input .del',function(){
        $(this).parent('.add-del').remove();
    })

猜你喜欢

转载自blog.csdn.net/qq_42221334/article/details/83655840