还有其他人注意到Firefox 10中DOM结构的奇怪问题吗?
在过去的10天里,我使用了许多jQuery插件时遇到了一系列失败,其中对象数据无法恢复,因为数据不在预期的位置。
如果我的术语不正确,请原谅我。
转到Firefox 10中的http://www.phiairmedical.com并打开Firebug Console。滚动任何导航,您将看到失败“opts未定义”(jquery.cycle.min.js第101行)
看着那一行,它试图检索存储的数据('cycle.opts'),但显然没有找到它。
上周,我使用jScrollPane遇到了类似的问题,其中存储在数据对象中的api函数是不可恢复的。我发现通过改变规范推送和检索,我能够访问它。
jScrollPane的建议是推送数据:
apis.push($(this).jScrollPane().data('jsp'));
我将这个函数称为:
$.each(apis, function(i) {
this.destroy();
});
这就是其他地方的作用。为了适应FF10,我不得不这样做:
apis.push($(this).jScrollPane().data('data.jsp'));
并将this.destroy()更改为
this.jsp.destroy();
我认为上面链接的网站目前存在的问题是同样的问题,因为去年夏天推出它时完全没问题。现在,导航翻转不起作用,因为Cycle插件因此数据问题而失败。
我希望有人可以了解他们是否经历过这种情况或听说过它或如何向Firefox提交错误(如果这就是它)。
修改 为了测试这一点,我进入并更改了jquery.cycle.min.js中的第100行:
var opts = $(cont).data('cycle.opts');
到
var opts = $(cont).data('data.cycle.opts');
问题就消除了。
答案 0 :(得分:0)
此问题的根源是Firebug中的FireQuery扩展。它与代码的质量无关。
禁用FireQuery后,原始代码运行时没有错误。
进一步的测试让我发现我可以通过取消选中“显示内部jQuery数据”选项来启用FireQuery,尽管开发人员在使用jQuery 1.7.1查看内部数据时实际上建议使用此选项。 p>