私は.live()メソッドが明らかに非推奨であるjQuery v.1.7.1を使用しています。
私が抱えている問題は、次のように使用して要素にHTMLを動的にロードする場合です。
$('#parent').load("http://...");
後でクリックイベントを追加しようとしても、これらの方法のいずれかを使用してイベントが登録されません。
$('#parent').click(function() ...);
または
// according to documentation this should be used instead of .live()
$('#child').on('click', function() ...);
この機能を実現する正しい方法は何ですか?それは私にとって.live()でのみ機能するようですが、私はそのメソッドを使用するべきではありません。#childは動的にロードされる要素であることに注意してください。
ありがとう。
.live()
を見ると、既存の使用方法.live()
を使用.delegate()
またはに変更する方法がわかります.on()
(バージョン1.7+ を使用しているかどうかによって異なります)。ただし、.click()
「後で」というようにハンドラーを追加した場合、つまり要素を動的にロードした後は機能するはずです-唯一の問題は、要素を動的にロードする.click()
前にで割り当てようとすることです。