2

動的に読み込まれたテキスト領域がいくつかありますが、それらがぼやけても反応しないようです。.post を使用してそれらをロードします (それらは php スクリプトで生成され、表示用のデータとして返されます)。私はこの jsfiddleを作成しました。これはそれ自体で機能しますが、私のページでは機能しません。問題は、テキストエリアが動的にロードされることでしょうか? SO の他の場所で、動的に読み込まれた要素に .on() を使用する必要があることを読みました (実際に使用しました)が、それでも自分のページでは機能しません。これは、jsfiddle の jQuery コードです。

$('.crit_desc').on('blur', function () {

    var value = $(this).val();
    alert(value);

});
4

2 に答える 2

5

コードを次のように変更します。

$(document).on('blur', '.crit_desc', function () {
    var value = $(this).val();
    alert(value);
});

要素は動的に読み込まれるため、ページの読み込み時に DOM に存在する要素にバインドする必要があります。理想的には、パフォーマンスを向上させるよりも、動的にロードされる要素に近い要素が必要ですdocument

.on()のドキュメントによると:

イベント ハンドラーは、現在選択されている要素にのみバインドされます。これらは、コードが .on() を呼び出す時点でページに存在している必要があります。要素が存在し、選択できることを確認するには、ページの HTML マークアップにある要素のドキュメント対応ハンドラー内でイベント バインディングを実行します。新しい HTML がページに挿入されている場合は、要素を選択し、新しい HTML がページに配置された後にイベント ハンドラーを添付します。

于 2013-02-24T18:04:41.437 に答える
0

動的に読み込まれる場合は、livequery http://docs.jquery.com/Plugins/livequeryを使用します

$('.crit_desc').livequery('blur', function () {
    var value = $(this).val();
    alert(value);
});

または、このSimulating "focus" and "blur" in jQuery .live() method を確認してください。.live はぼかしとフォーカスをサポートしていないためです。

于 2013-02-24T18:13:39.920 に答える