新しいdiv
( "textbox"クラスとIDを含む)、およびその中の他の要素を動的に作成し、後のコードでそのdiv
をクリックイベントにバインドします。クリックされた要素を次のように表示します。
_$('#textbox_'+i).bind('click', function(event){
alert(event.target.className);
}
_
これで問題ありません。表示されるクラスの1つとしてtextbox
が表示されます。ただし、event.target.hasClass()
は機能していないようです。したがって、次のことを行っても何も起こりません。
_$('#textbox_'+i).bind('click', function(event){
if(event.target.hasClass('textbox')) { alert('got it!'); }
}
_
いくつかの異なる方法で試してみましたが、event.target.hasClass()
が機能しないようです。イベントに対処する別の方法はありますか、何か間違っていますか?
標準のDOM要素でjQueryメソッドhasClass()
を使用しようとしています。次のように、プレーンなJS DOM要素_e.target
_をjQueryオブジェクトに変換する必要があります。
_$(event.target).hasClass('textbox')
_
そして、あなたは次のようになります:
_$('#textbox_'+i).on('click', function(event){
if( $(event.target).hasClass('textbox')) alert('got it!');
});
_
on()
の使用、click
関数の適切な終了に注意してください。単純なアラートのみを実行する場合は、ifステートメントに中括弧は必要ありません。
JQueryを使用せずにJS DOM要素をそのまま使用したい場合:
event.target.classList.contains('textbox')