JQuery живой метод не работает
Я генерирую тег img динамически. И выполнение события клика на этом. Для этого я использовал живой метод jQuery. Он хорошо работает в Mozilla Firefox и Google Chrome, но не работает в IE. Вот мой код,
<div class="itemremove"><a href="action">remove</a></div>
Используя jQuery, когда страница загружена, я заменяю текст удаления на какое-то изображение, например "X".
$(".itemremove a").text(""); // deleting text
$(".itemremove a").append("<img class='removeImg' alt='Remove'
src='remove_item.png'>"); // adding image in that place
Далее при нажатии на изображение событие не срабатывает.
$(".removeImg").live("click", function(){
alert("Item removed");
});
В IE нет окна предупреждений, но работает в Firefox и Chrome. Кто-нибудь может сказать мне решение для этого?
3 ответа
Я бы поставил клик на:
$(".itemremove a").live(...
Но я бы использовал фон для размещения изображения и использовал бы текстовый отступ:-10000 для текста. Таким образом, это доступно, и вам не нужно использовать JavaScript, который является вторым вариантом для CSS.
.live() устарела начиная с jQuery 1.7 (http://api.jquery.com/live/#live-events-map). Он был заменен на.on():
$(".itemremove a").on("click", function(){
alert("Item removed");
});
Не то чтобы это сильно повлияло на результат:)
Я полагаю, вам не хватает закрывающей скобки:
$(".removeImg").live("click", function(){
alert("Item removed");
}
); //this one
ИЛИ попробуйте:
$(".itemremove a").live("click", function(){
alert("Item removed");
});