$().ready(function(){
$("#move-to").click(function(){
$("body").bind("click",function(){
alert("foo");
});
});
});
为什么单击“移动到”后立即看到警报(“foo”)?
当我在文档中的某个 div 上绑定“警报”时,一切正常。
可以来人帮忙吗?
我做错了什么?
$().ready(function(){
$("#move-to").click(function(){
$("body").bind("click",function(){
alert("foo");
});
});
});
为什么单击“移动到”后立即看到警报(“foo”)?
当我在文档中的某个 div 上绑定“警报”时,一切正常。
可以来人帮忙吗?
我做错了什么?
处理程序运行后#move-to
,单击事件会冒泡到<body>
,触发您刚刚绑定的处理程序。
您可以通过调用来防止这种情况发生e.stopPropagation()
。
<body>
或者,您可以在此事件循环之后通过将 移动bind()
到setTimeout
调用来绑定单击事件。
$().ready(function(){
$("#move-to").click(function(e){
e.stopPropagation();
$("body").bind("click",function(){
alert("foo");
});
});
});
但是我认为您在单击时一次又一次地对单击事件进行代码绑定,#move-to
如果您不在其他地方取消绑定该单击事件,这并不好。