0

残念ながら再現できない状況で、jquery を介して dom に入力フィールドを挿入しています。

ただし、入力フィールド内に書き込むと、その値は変更されません。

以前にこの動作を見たことがありますか? もしそうなら、どのように対処しましたか?

明確にするために

エラーは単純な数行のコードでは再現できないため、この質問にはコード例はありません。開示が許可されていないアプリの一部を含める必要があります。したがって、人々が同様の行動を見たことがあるかどうか、またどこでそれが予想されるかを尋ねています.

4

1 に答える 1

1

動的に追加された要素に対してイベント ハンドラーが実行されないことを意味する場合、これは次のような古典的な間違いである可能性があります。

HTML:

<div id="container">
    <div class="box">Box</div>
</div>

JavaScript:

$('.box').on('click', function() {
    alert('box clicked');
});
var newBox$ = $('<div>').addClass('box').html('Box');
$('#container').append(newBox$); // clicks on this box will not be handled.

しかし、その JavaScript を少し変更すると、動的に追加された要素のイベントが必要に応じて処理されます。

変更方法:

$('#container').on('click', '.box', function() {
    alert('box clicked');
});
var newBox$ = $('<div>').addClass('box').html('Box');
$('#container').append(newBox$); // clicks on this box will be handled.

このようにして、イベント ハンドラーをコンテナーにバインドし、イベントがバブルアップしたときに適切なイベント ハンドラーが呼び出されます。

于 2012-09-26T11:22:02.187 に答える