Событие 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.