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() を使用します。h2#pageTitle などの別のセレクターが id セレクターにアタッチされている場合、jQuery は要素を一致として識別する前に追加のチェックを実行します。

重複した ID を削除し、クラス セレクターなどの他のセレクターを使用します。

于 2012-10-17T03:38:21.837 に答える
1

問題は、すべての ID が同じであることです。ID は一意である必要があります。クラスを使用するか、すべての a タグで起動するかどうかを気にしない場合は a セレクターを使用します。

于 2012-10-17T03:40:25.707 に答える