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