IE上的jquery多个切换

时间:2012-10-17 03:36:31

标签: jquery internet-explorer slidetoggle

我正面临着在IE上多次切换的问题。它适用于除IE(-_-)之外的所有其他浏览器。下面是我的代码的摘要。当我点击第一个超链接时,我只能 能够获得弹出警报。当我点击后续链接

时没有弹出窗口
 $(document).ready(function(){

$("a#toggleFruitSlideBox").click(function() {
          alert($(this).text());
      return false;
  });
});

<div id="bodykit_slidebox">
<div style="padding:5px 0px 0px 5px;">
    <a id="toggleFruitSlideBox" href="#" class="nav2">apple</a>
    <a id="toggleFruitSlideBox" href="#" class="nav2">orange</a>
    <a id="toggleFruitSlideBox" href="#" class="nav2">DURIAN</a>
    <a id="toggleFruitSlideBox" href="#" class="nav2">papaya</a>
</div>

2 个答案:

答案 0 :(得分:4)

您有多个元素具有相同的id,它是无效的HTML!

在这里查看我的答案:
jQuery id selector works only for the first element

您的代码与另一个问题中的代码之间的唯一区别是您使用错误的选择器:

$("a#toggleFruitSlideBox")

导致jQuery不使用document.getElementById,因此这就是它在其他浏览器中运行的原因。

来自jQuery文档:

  

对于id选择器,jQuery使用JavaScript函数document.getElementById(),这非常有效。当另一个选择器附加到id选择器时,例如h2#pageTitle,jQuery在将元素标识为匹配之前执行额外的检查。

删除重复的id并使用其他选择器,如类选择器。

答案 1 :(得分:1)

看起来问题是你所有的Id都是一样的。 Id应该是独一无二的。如果您不关心它是否会触发所有标记,请使用类或只使用a选择器。