От JQuery 1.7+ .live() является deprecated и .delegate() был superseded методом .on().
Используйте .on() и .off() вместо .live() и .die(). Используйте .on() вместо .delegate().
Преобразование старого кода является простым as explained here.
Вы должны назвать события, которые .hover()
карты в отдельности, как это:
$("li.favorite_item").live('mouseenter', function() {
$(this).append($(" <a href='#' class='button'>x</a>"));
}).live('mouseleave', function() {
$(this).find("a:last").remove();
});
.hover()
не является функцией события, как .click()
является, например, это just a special shortcut for .mouseenter(handler1).mouseleave(handler2)
... так что вам нужно сделать то же самое в своем вызове .
Если вы на JQuery 1.4.3+, вы можете использовать карту, чтобы упростить вещи, как это:
$("li.favorite_item").live({
mouseenter: function() {
$(this).append($(" <a href='#' class='button'>x</a>"));
},
mouseleave: function() {
$(this).find("a:last").remove();
}
});
Кроме того, если это на конкретном <ul>
, .delegate()
является лучшим вариантом, например:
$("#myUL").delegate("li.favorite_item", {
mouseenter: function() {
$(this).append($(" <a href='#' class='button'>x</a>"));
},
mouseleave: function() {
$(this).find("a:last").remove();
}
});