0

我面临着在 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>
4

2 回答 2

4

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

在这里检查我的答案:
jQuery id 选择器仅适用于第一个元素

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

$("a#toggleFruitSlideBox")

这导致 jQuery 不使用document.getElementById,所以这就是它在其他浏览器中工作的原因。

来自 jQuery 文档:

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

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

于 2012-10-17T03:38:21.837 回答
1

看起来问题是你所有的身份证都是一样的。ID应该是唯一的。如果您不关心它是否在所有 a 标签上触发,请使用类或仅使用 a 选择器。

于 2012-10-17T03:40:25.707 回答