De jQuery 1.7+ .live() es deprecated, y .delegate() ha sido superseded por el método .on().
Use .on() y .off() en lugar de .live() y .die(). Use .on() en lugar de .delegate().
La conversión del código anterior es directa as explained here.
es necesario llamar a los eventos que .hover()
mapas a separado, como este:
$("li.favorite_item").live('mouseenter', function() {
$(this).append($(" <a href='#' class='button'>x</a>"));
}).live('mouseleave', function() {
$(this).find("a:last").remove();
});
.hover()
no es una función evento como .click()
es, por ejemplo, es just a special shortcut for .mouseenter(handler1).mouseleave(handler2)
... por lo que necesita hacer lo mismo en su llamada .
Si estás en jQuery 1.4.3+, se puede utilizar un mapa para simplificar las cosas, como este:
$("li.favorite_item").live({
mouseenter: function() {
$(this).append($(" <a href='#' class='button'>x</a>"));
},
mouseleave: function() {
$(this).find("a:last").remove();
}
});
Además, si se trata de una específica <ul>
, .delegate()
es una mejor opción, como este:
$("#myUL").delegate("li.favorite_item", {
mouseenter: function() {
$(this).append($(" <a href='#' class='button'>x</a>"));
},
mouseleave: function() {
$(this).find("a:last").remove();
}
});