Событие JQuery не работает после.addClass

Почему div # 1 не меняет текст. Что я делаю неправильно?

2 ответа

Попробуй это

$("body")
.on('click', '.a', function (){
 $(this).addClass("b");
})
.on('click', '.b', function (){
 $(this).text("hello");
})


Обработчики событий добавляются к элементам, которые соответствуют этому селектору в то время, а изменение селектора позже не волшебным образом активирует обработчик событий.

Вы можете использовать делегированные обработчики событий для этого

$(document).ready(function(){
 $(document).on("click", ".b", function(){
 $(this).text("hello");
 });

 $(".a").mouseover(function(){
 $(this).addClass("b");
 });
});

Но почему вы это делаете, кажется, что странный шаблон активирует обработчик кликов только после того, как один и тот же элемент зависает, поскольку вы не можете щелкнуть его, если мышь не над ним?

licensed under cc by-sa 3.0 with attribution.