в 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')