$().ready(function(){
$("#move-to").click(function(){
$("body").bind("click",function(){
alert("foo");
});
});
});
为什么我在点击“移动到”后立即看到警告(“foo”)? 当我在文件中的某些div上绑定“警报”时,可以使用evrithing 可以来帮忙吗? 我做错了什么?
答案 0 :(得分:3)
运行#move-to
处理程序后,点击事件会冒泡到<body>
,然后触发您刚绑定的处理程序。
您可以通过拨打e.stopPropagation()
来阻止这种情况。
或者,您可以在此事件周期后绑定<body>
点击事件,方法是将bind()
移至setTimeout
来电。
答案 1 :(得分:0)
$().ready(function(){
$("#move-to").click(function(e){
e.stopPropagation();
$("body").bind("click",function(){
alert("foo");
});
});
});
但我认为你单击#move-to
时反复绑定点击事件的代码,如果你没有在其他地方取消绑定点击事件,那就不好了。