在 http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js/eval/seq 中遇到警报("hello world")



我有大约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"。

最新更新