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");
});
Другие вопросы по тегам