呼び出されるこのようなコードがあるとします$(document).ready()
$(".someClass").click(function(){
//do something
});
後で、 class で要素を作成するための jquery がありますsomeClass。上からクリックを自動的にアタッチする方法はありますか、それとも手動で再度アタッチする必要がありますか?
呼び出されるこのようなコードがあるとします$(document).ready()
$(".someClass").click(function(){
//do something
});
後で、 class で要素を作成するための jquery がありますsomeClass。上からクリックを自動的にアタッチする方法はありますか、それとも手動で再度アタッチする必要がありますか?
はい。可能です。
$("body").on("click", ".someClass", function() {
// ...
});
最新バージョンの jquery を使用し、on
$(document).on('click', '.someClass', function(e){
//do something
});
Liveは非推奨ですが、とにかく使用できます (推奨されません)。
$('.someClass').live('click', function(e){
//do something
});
live新しい要素もリッスンするがあります
$(".someClass").live('click', function(){
//do something
});
ただし、jquery 1.7 の時点で廃止されました。代わりに使用することをお勧めしますon。
ただし、 を使用するにonは、ハンドラーをバインドする要素のコンテナーが必要です。もちろん、bodyorを使用することもできますdocumentが、より具体的な要素を使用することをお勧めします
$(".someClassContainer").on('click', '.someClass' function(){
//do something
});
これを行うには 2 つの簡単な方法があります。1 つ目は次の方法ですon()。
$(".someClassParentElementPresentInTheDOMonDOMReady").on('click','.someClass',
function(){
//do something
});
もう 1 つは、新しい要素の作成時にクリック ハンドラを割り当てるだけです。どのようにしているのかわかりませんが、例を以下に示します。
$('#addElement').click(
function(){
var newElem = $('<div />',{'class' : 'someClass'}).click(function(){
// do something }).appendTo('.someClassParentElementPresentInTheDOMonDOMReady');
参考文献:
on().