事情 是酱紫的...
我用jquery:<div class=mybox>
<button id=click>soso</button>
</div>
<button class=newclick>socos</button> $("#click").click(function(){
$(".mybox").append("<button class=newclick>socos</button>");
}); $(".newclick").click(function(){
alert('test');
})在这个例子中,点击soso按钮以后,再点击出现在div框中的socos按钮,是不会弹出test的
想要如愿的话,那必须在click的定义事件中重新定义一边newclick的点击事件,否则无效: $("#click").click(function(){
$(".mybox").append("<button class=newclick>socos</button>");
$(".newclick").click(function(){
alert('test');
})
})
$(".newclick").click(function(){
alert('test');
})请问大家,有没有遇到过这种问题,有没有办法可以避免对newclick点击事件的重复定义?谢谢!
代码如有错误请忽视,手敲滴。
我用jquery:<div class=mybox>
<button id=click>soso</button>
</div>
<button class=newclick>socos</button> $("#click").click(function(){
$(".mybox").append("<button class=newclick>socos</button>");
}); $(".newclick").click(function(){
alert('test');
})在这个例子中,点击soso按钮以后,再点击出现在div框中的socos按钮,是不会弹出test的
想要如愿的话,那必须在click的定义事件中重新定义一边newclick的点击事件,否则无效: $("#click").click(function(){
$(".mybox").append("<button class=newclick>socos</button>");
$(".newclick").click(function(){
alert('test');
})
})
$(".newclick").click(function(){
alert('test');
})请问大家,有没有遇到过这种问题,有没有办法可以避免对newclick点击事件的重复定义?谢谢!
代码如有错误请忽视,手敲滴。
alert('test');
});
为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数。
这个事件处理函数会接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事件处理函数必须返回false。多数情况下,可以把事件处理器函数定义为匿名函数(见示例一)。在不可能定义匿名函数的情况下,可以传递一个可选的数据对象作为第二个参数(而事件处理器函数则作为第三个参数),见示例二。
返回值jQuery
参数type (String) : 事件类型data (Object) : (可选) 作为event.data属性值传递给事件对象的额外数据对象fn ( Function) : 绑定到每个匹配元素的事件上面的处理函数
示例当每个段落被点击的时候,弹出其文本。jQuery 代码:
$("p").bind("click", function(){
alert( $(this).text() );
});你可以在事件处理之前传递一些附加的数据。jQuery 代码:
function handler(event) {
alert(event.data.foo);
}
$("p").bind("click", {foo: "bar"}, handler)通过返回false来取消默认的行为并阻止事件起泡。jQuery 代码:
$("form").bind("submit", function() { return false; })通过使用 preventDefault() 方法只取消默认的行为。jQuery 代码:
$("form").bind("submit", function(event){
event.preventDefault();
});通过使用 stopPropagation() 方法只阻止一个事件起泡。jQuery 代码:
$("form").bind("submit", function(event){
event.stopPropagation();
});