0

私はjsonのデータを含む動的に作成されたリストを持っています。だから私の質問は、クリックされたアイテムのインデックスを取得する方法です。

私はこれを試しました:

$("li").click(function() {
       var index = $("li").index(this);
       alert(index); });

しかし、これはうまくいきませんでした。アラートが届かないのですが? いくつかの静的な Li 要素を作成すると、それらのインデックスを取得します。

私を助けてください :/

4

4 に答える 4

1

2 つの問題:

  1. あなたはただ欲しい$(this).index()

    $("li").click(function() {
       var index = $(this).index();
       alert(index); });
    

    ドキュメントから:

    メソッドに引数が渡されない場合.index()、戻り値は、兄弟要素に対する jQuery オブジェクト内の最初の要素の位置を示す整数です。

  2. すると、その時点で$("li").click(...)存在する要素に接続されます。後で追加するものには、クリック ハンドラーが割り当てられません。このような動的リストにアプローチする最善の方法は、通常、イベント委任です。DevlshOne は、彼/彼女の回答で例を挙げています。基本的な考え方は次のとおりです。

    $("selector for the list, not the list items").on("click", "li", function() {
        // handler code here
    });
    

    これは、リスト項目ではなくlistclickにフックしますが、クリックが発生すると、ハンドラーにクリックをフックしたかのようにハンドラーを起動します。

于 2013-07-09T14:09:18.427 に答える
0

以下を試してください。ul動的にロードされないと仮定します。

$("ul.containerclass").on("click", "li", function() 
{
   var index = $(this).index();
   alert(index);
});

また

$(document).on("click", ".containerclass li", function() {
   var index = $(this).index();
   alert(index);
});

注 : ここでは、containerclass を ID にすることができます

于 2013-07-09T14:15:20.893 に答える
-1

それは

$("li").click(function() {
       var index = $(this).index();
       alert(index);
});
于 2013-07-09T14:09:18.503 に答える