我动态创建一个新的 div
(带有“textbox”类和 ID),以及其中的一些其他元素,稍后在我的代码中我绑定(bind)该 div
到点击事件,并显示点击的元素,如下所示:
$('#textbox_'+i).bind('click', function(event){
alert(event.target.className);
}
这很好,它会给我 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 e.target.hasClass 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155050/