我有大约20个类似的块。 在单击每个块时,会进行 ajax 调用以检索与该块有关的内容。当我继续随机单击每个块时,大约 10 次单击后,我会收到一条警报消息,从上面指定的文件中说"Hello World"。我的代码中不存在该文件。
块本身由 Ajax 调用生成。
因此,当我研究时,他们说解除绑定并绑定调用可以解决问题。
所以由于这是一个 ajax 调用生成的块,我尝试过
$(".hello").die("click").live("click",function(){ //code });
但问题仍然存在。 我不断遇到"你好世界"的消息。 我什至尝试在单击函数中给出 die 消息,并在函数执行后触发单击。 但这会同时禁用单击功能。
$(".hello").live("click",function(){
$('.hello').die();
//some code
$("hello").live("click",function);
});
http://jsfiddle.net/ke4CQ/28/
我的理解是这样的:当 JavaScript 引擎动态编译一段新代码时(例如,通过您调用 eval()
或通过 Firebug 控制台),它将使用源 URI 标记代码。 在 Firefox 中,这些动态 URI 末尾有类似"eval/seq/1"的东西。
这有点类似于Java处理父类"Foo"的内部类"Bar"的方式:类名变为"Foo$Bar"。