0

ドロップダウン ( < select > ) 要素とコンテナーがあります。

<div class='container' />
<script>
   var dropdown = "<select class='multi-dropdown'> ... </select>"
</script>

値が変更されると、別の値を取得します。これは、ドキュメントの準備が整ったとき (最初のドキュメントがそこで作成されたとき) にのみ発生し、クライアントが最後のドキュメントを変更したときにのみ発生することは論理的です。

$(document).ready( function(){
    $('.container').append(dropdown);
    $('.multi-dropdown:last').change(function(){
          $('.container').append(dropdown);
    }); 
});

私にとっては有効なコードのようです。しかし、私が気づいたのは、これは次に追加されたドロップダウン要素では機能しないということです。また、元のものを変更すると発火します。

私の理論では、jQuery は元のオブジェクトを :last として既に保存している可能性があるため、新しい「最後の」要素を追加しても、新しい要素を再度選択することはありません。

また

新しく作成された要素 (この方法) は、jQuery で選択することさえできません。

賛成か反対かで議論してください。これらは私の考えにすぎません。

4

2 に答える 2

2

問題は、新しく追加された SELECT にイベントがバインドされないことです。クラスを使用して最初の SELECT でも変更をバインドしたからといって、それが DOM に新しく追加されたすべての要素に自動的に適用されるわけではありません。

on() 関数のように、委譲されたイベントについて調べます。またはlivequeryのようなものを使用します。

于 2013-10-08T20:00:33.613 に答える