в jQuery е.цель.hasClass не работает
Я динамически создаю новый div
(С классом "textbox" и ID) и некоторыми другими элементами внутри него, а позже в моем коде я связываю это div
к событию click и отобразить элемент щелкнул, например:
$('#textbox_'+i).bind('click', function(event){
alert(event.target.className);
}
это прекрасно, и это даст мне textbox
как один из отображаемых классов.
Но!--5--> не работает. Поэтому, когда я делаю следующее, ничего не происходит:
$('#textbox_'+i).bind('click', function(event){
if(event.target.hasClass('textbox')) { alert('got it!'); }
}
Я пробовал несколько разных способов, и мне кажется, что event.target.hasClass()
просто не работает. Есть ли другой способ справиться с событиями или я делаю что-то неправильно?
2 ответов
вы пытаетесь использовать метод jQuery, hasClass()
, на стандартном элементе DOM. Вам нужно преобразовать простой элемент 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, если вы только выполняете простое предупреждение.
Если вы хотите продолжать использовать элемент JS DOM без использования jQuery:
event.target.classList.contains('textbox')