通过 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(){...})
-
$(document).on('click','.centent_input .del',function(){ $(this).parent('.add-del').remove(); })