解决方案
var options = { opacity: opacity }; //Many thanks to David Higgins for his help
var direction;
if(id == "chat") {
direction = {right: dir + amt, top: dir + amt };
} else if(id == "rplayed") {
direction = {left: dir + amt, top: dir + amt };
} else if(id == "info") {
direction = {right: dir + amt, bottom: dir + amt };
} else if(id == "player") {
direction = {left: dir + amt, bottom: dir + amt };
}
$.extend(options, direction);
$(wid).animate(options, 200);
问题
我一直在开发一个在Chrome和Firefox中非常jQuery密集的网站。它现在进入了一个在IE中打开它的阶段,看看IE如何处理网站。
我已经浏览了jQuery的东西,我真的看不出我写的任何内容有什么问题,IE只是给出错误“无效的争论 - 第142行 - jquery.js”(实际的jQuery源文件) 。
在网站上,jQuery有两个主要用途:使用Ajax和JSON更新元素并移动元素(隐藏/显示和滑动)以创建窗口界面。
网站位于 deadlink ,而JS位于 deadlink
任何人都可以解释我的jQuery代码有什么问题吗?我不知道从哪里开始,我不期待你解决它只是指出我正确的方向并让我知道发生了什么!
如果你想看看网站应该做什么,请在FF或Chrome中打开它!
非常感谢,
答案 0 :(得分:1)
出现在main.js的第102行附近的代码:
$(wid).animate({
opacity: opacity,
left: left,
top: top,
bottom: bottom,
right: right
}, 200);
将'undefined'作为'top'的值传递。
我的建议,
上面的代码......应该做更像这样的事情:
var options = { opacity: opacity };
if(id == "chat") {
jQuery.extend({right: dir + amt, top: dir + amt }, options);
} else if(id == "rplayed") {
jQuery.extend({left: dir + amt, top: dir + amt}, options);
} // snipped - you get the point
$(wid).animate(options, 200);
我还没有测试过整个jQuery.extend()调用...但是这应该解决你的无效参数问题 - IE不喜欢为CSS属性设置无效值(这包括'null','undefined',alpha当数字被期望时,'0'当'无'时,等等)。 FF,Chrome和Safari都可以优雅地处理这个问题...只需忽略CSS值(在这种情况下,它会省略你的值 - 导致渲染看起来正确)。
希望这有帮助。
答案 1 :(得分:0)
我担心我没有时间梳理来源,但是如果你已经卡住并且你已经没有了,请尝试使用firebug lite单步执行js来追踪问题。