2012-05-12 2 views
1

私は順序付けられていないリストにデータを追加するfollowing codeを持っています。面倒なコードは次のとおりです。jQueryをunclickableに追加する

$('li:not(:first-child)').click(function() { 
    var clickedLi = this; 
    $(this).parent().prepend(clickedLi); 
    var selectedLi = $(this).text(); 
    alert(selectedLi); 
$(this).parent().parent().nextAll().children('ul').children().replaceWith('<li>Please select</li>'); 

    //ajax call 
    var returnedData = "<li>Dataset1</li><li>Dataset2</li><li>Dataset3</li>"; 

    //populate next with returned data 
    $(this).parent().parent().next().children('ul').append(returnedData); 
});​ 

あなたが最初のULでのオプションのいずれかをクリックすると、データが第二のULに追加されます。しかし、このulの下にあるリスト項目はクリック可能ではなく、そのようにする必要があります。そのため、「チェーン」を継続できます。

バグはどこですか?どんな助けでも大歓迎です。前もって感謝します。

+0

あなたはLiをクリックすると、... – PeeHaa

+0

をクリックできない定義何が起こるべきかは、次のフィールドにそのフィールドが設定されているのと同じように設定する必要があるということです。 – jacktheripper

+2

[jQuery '.on()'](http://api.jquery.com/on/)。それを読んで。 – PeeHaa

答えて

2

をチェックして試してみてくださいすることができます(あなたが1.6.8よりも大きいのjQueryを使用している場合)

$(document).on('click','li:not(:first-child)',function() { 

http://api.jquery.com/on/

1

あなたのコードで判断すると、新しく追加されたliは、既存のものに追加する動作を継承すると考えられます。残念ながら、それはそのように書かれたコードでは動作しません。

clickイベントを「観測可能」な方法でアタッチする必要があります。これにより、DOMに新しく追加された要素によってイベントハンドラがアタッチされます。

これを行うには、.onメソッドを使用する必要があります。あなたは、その参照here

関連する問題