1

順序付けられていないリストにデータを追加する次のコードがあります。面倒なコードは次のとおりです。

$('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 のオプションの 1 つをクリックすると、データが 2 番目の ul に追加されます。ただし、この ul の下のリスト項目はクリック可能ではなく、「チェーン」を継続できるようにする必要があります。

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

4

2 に答える 2

2

試してみてください:(1.6.8以上のjQueryを使用している場合。)

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

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

于 2012-05-12T19:10:35.297 に答える
1

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

DOM に新しく追加された要素にイベント ハンドラーがアタッチされるように、"監視可能な" 方法でクリック イベントをアタッチする必要があります。

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

于 2012-05-12T19:10:00.383 に答える