2012-11-18 216 views
0

这似乎是一个常见问题,我不知道如何解决。IE的“对象不支持此属性或方法”在slideDown

所以,我有一堆的<div>的一个ID,我决定出于某种原因在数组存储像

buttons = ["news", "info", "prog", "evnt"]; 

定义所以我用它来得到他们滑下的方法之一是以下:

for (var i in buttons) 
    $("#" + buttons[i]).css ({display: "block"}); 

都不是,如果对接:

for (var i in buttons) $("#" + buttons[i]).slideDown(); 

我也是在代码中使用此ons不可见,工作(在IE 7和8上),在这些块之后,我得到了通常的“Object不支持这个属性或方法”。有任何想法吗?

我还得到了一个奇怪的“无法识别的表达式”的关于jQuery的错误,这让我很困惑。

+0

不要使用'为in'来遍历数组。 – SLaks

+0

我真的不相信这是实际的问题!它解决了它,为什么它不工作?为什么它在chrome/firefox/etc上工作? – marco

回答

0

几个小东西:

  • 1 - 你总是可以上的选择

    $("#news, #info, #prog, #evnt").slideDown();

  • 2追加 - 总是用顺序for

    for (var i = 0; i < buttons.length; i++) { // do something }

  • 3 - 隐藏时,如果您使用的是jQuery,为什么不是hide

    for (var i = 0; i < buttons.length; i++) { $("#" + buttons[i]).hide(); }

+0

我仍然不明白为什么'in in'的行为有所不同 – marco

+0

这是一个完美可行的问题,女巫已经[先前回答](http://stackoverflow.com/a/500531/28004) – balexandre

相关问题