60

新しいdivもの (「テキストボックス」クラスと ID を使用) とその中に他の要素を動的に作成し、後でコード内でそれをdivクリック イベントにバインドし、クリックされた要素を次のように表示します。

$('#textbox_'+i).bind('click', function(event){
    alert(event.target.className);
}

これで問題ありませんtextbox。表示されるクラスの 1 つとして表示されます。しかし、event.target.hasClass()うまくいかないようです。したがって、次のことを行っても何も起こりません。

$('#textbox_'+i).bind('click', function(event){
    if(event.target.hasClass('textbox')) { alert('got it!'); }
}

私はそれをいくつかの異なる方法で試しましたが、event.target.hasClass()うまくいかないようです。イベントを処理する別の方法はありますか、それとも何か間違っていますか?

4

2 に答える 2

105

hasClass()標準 DOM 要素でjQuery メソッド を使用しようとしています。e.target次のように、プレーンな JS DOM 要素を jQuery オブジェクトに変換する必要があります。

$(event.target).hasClass('textbox')

そして、あなたは次のようになります:

$('#textbox_'+i).on('click', function(event){
     if( $(event.target).hasClass('textbox')) alert('got it!');
});

の使用on()、関数の適切な終了に注意しclickてください。単純なアラートのみを実行する場合は、if ステートメントに中かっこは必要ありません。

于 2012-08-28T08:00:48.867 に答える