3

jQuery API は現在ダウンしているため、以下のことを手伝ってくれる人はいますか? 私は、順序付けられていないリストを Web ページにロードする ajax を使用しており、ホバー イベントとクリック イベントをリスト項目にアタッチできる必要があります。

<ul>
  <li class="option">Item 1</li>
  <li class="option">Item 1</li>
  <li class="option">Item 1</li>
</ul>

これまでのところ、バージョン 1.7+ の .on を使用して、以下の jQuery コードのいくつかのバリエーションを試しました。

$("ul").on("click", "li .option", function(){
alert($(this).text());
}); 

誰かが私を正しい方向に向けることができますか? .live が減価償却され、.delegate が置き換えられたことを認識しているので、実際には .on を使用できるようにするソリューションのみを探しています。

いつもありがとう!

4

1 に答える 1

3

ではなく、 classli .option内の要素を見つけるためですが、このクラスを に持っているので、orになります。lioptionlili.option.option

の場合.on()、次のようになります。

$("ul").on("click", "li.option", function(){
   alert($(this).text());
});

しかし.delegate()、の場合は次のようになります。

$("ul").delegate("li.option", "click", function(){
   alert($(this).text());
});

あなたによると編集

コンテナ参照でバインドしようとしてclickいますが、これは DOM 変更にも追加されます。したがって、リスト全体を追加する DOM ans に既に存在する を選択できます。li.optionul#content

したがって、デリゲート イベントは次のようになります。

$("#content").delegate("ul > li.option", "click", function(){
   alert($(this).text());
});
于 2012-06-02T16:03:12.103 に答える