jQuery - 後に表示される非表示の要素にイベントをバインドするにはどうすればいいですか? 質問する

jQuery - 後に表示される非表示の要素にイベントをバインドするにはどうすればいいですか? 質問する

特定のクラスのすべての要素に「クリック」イベントをアタッチしようとしています。問題は、イベントがバインドされた時点で、一部の要素が非表示 (表示: なし) のタブ上にあることです。(.bind())。これらの要素が表示されると、イベントはバインドされなくなるようです。

$('a.someClass').bind('click', function(){
  alert("test");
});

非表示の要素にはクリック イベントがバインドされていないようです。非表示の要素を選択した場合:

$('a.someClass:hidden').bind('click', function(){
  alert("test");
});

これらの要素が非表示ではなくなった場合、クリック イベントはバインドされないようです。これを経験した人はいますか? 表示プロパティに関係なく、要素にイベントをバインドする方法はありますか?

ありがとう

ベストアンサー1

jQuery 1.7以降では、.live()メソッドは非推奨です。

これで、.on()メソッド。jQuery の実行時に HTML で表示可能な要素に委任されたイベントを添付します。

したがって、a.someClassjQuery の実行時に が非表示になっている場合は、委任されたイベントを本体に添付して、a.someClass将来表示可能な要素があるときに実行されるようにする必要があります。次に例を示します。

$('body').on('click','input.a.someClass',function(){
  alert("test");
});

おすすめ記事