【问题标题】:IE's "Object doesn't support this property or method" on slideDownslideDown 上 IE 的“对象不支持此属性或方法”
【发布时间】:2012-11-18 13:36:52
【问题描述】:

这似乎是一个我不知道如何解决的常见问题。

所以,我有一堆 <div> 的 id,我出于某种原因决定将其存储在一个定义如下的数组中

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

所以我用来让它们向下滑动的方法之一是:

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

我也在代码中使用了这个:

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

如果按钮不可见,也不起作用(在 IE 7 和 8 上),在这些块之后,我会得到通常的“对象不支持此属性或方法”。有什么想法吗?

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

【问题讨论】:

  • 不要使用for in 来迭代数组。
  • 老实说,我不敢相信这是真正的问题!!它解决了它,为什么它不起作用?为什么它可以在 chrome/firefox/etc. 上运行?

标签: javascript jquery internet-explorer


【解决方案1】:

一些小事:

  • 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(); }

【讨论】:

  • 我仍然对为什么for in 的行为不同感到困惑
  • 这是一个完美可行的问题来回答,女巫已经answered before
猜你喜欢
  • 2011-02-02
  • 1970-01-01
  • 2012-06-11
  • 2013-10-05
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多