2011-03-09 60 views
0

升级到jQuery 1.5.1后,FireFox中出现Unresponsive Script警告。jQuery 1.5.1与原型导致FireFox中的脚本无响应

没有其他改变,只有jQuery从1.4.2升级到1.5.1。如果我调试脚本,并查看堆栈跟踪我可以看到,导致反应迟钝脚本代码非常简单:

$("div.activityItems[gid='-1']").children().attr("disabled", "disabled") 

有其他人遇到类似的问题,关于jQuery的1.5.1?

UPDATE

我已经局部冲突是JQuery的1.5.1和原型之间。将Prototype升级到v.1.7会导致明显的冲突:

$(document.body).keydown is not a function 
$.fn is undefined 

解决方法的任何想法?

+0

该div有多少个孩子?他们都是可以采用“禁用”属性的元素吗?注意:这可能是不相关的,但是使用自发的,像'gid'这样的无效属性,我个人会避免。 – RoToRa 2011-03-09 16:59:30

回答

0

重新更新:

记住这两个库定义函数$。您是否使用jQueries noConflict()?我不熟悉Prototype,所以你应该检查它是否有类似的功能。

它可能是显而易见的,但我会说:不要使用这两个库。它们基本上具有相同的功能,因此您不仅要求提出问题,而且如果您同时使用这两个功能,还会使页面膨胀。

+0

是的,我对原型库做了一些丑陋的修改,用$ p( - 修正了冲突。不幸的是,我们有一些使用Prototype的遗留代码,我们不想使用noConflict,因为这需要我们以取代所有我们不想做的$()选择器 修改过的原型技巧可以解决冲突,现在我们只有几件事停止工作,但应该可以修复。 基本上,我们想摆脱原型,但我们仅限于为即将发布的版本进行破坏控制。 – MartinHN 2011-03-10 14:21:37

0

堆栈跟踪在这种情况下并不真正有用,因为“无响应的脚本”意味着JavaScript运行时间过长,从而导致浏览器无法响应。

因此,您需要检查您的代码长时间甚至无限循环,过度的递归深度以及可能需要很长时间才能执行的类似事情。

+0

好的,但代码没有改变。在jQuery 1.4.2中工作,在1.5.1中不起作用。 – MartinHN 2011-03-09 14:42:22

+0

然后一些更多的代码会很有用......甚至是jsfiddle上的一个测试用例。 – ThiefMaster 2011-03-09 14:50:04

+0

我试图在jsFiddle重现,但如果我能这个问题当然会更彻底。我只是想问问是否有其他人经历过类似的事情。 – MartinHN 2011-03-09 15:05:08