[jQuery] [1] zawsze zapamiętuje twoje wyzwalacze myszy, albo kliknięcia, albo zawieszenia. Jeśli więc cztery razy klikniesz myszą i wyjdziesz myszą, wykonasz to zdarzenie cztery razy.
Jak sprawić, by "zapomniał" o wyzwalaczach, tak aby po kliknięciu myszą i wyprowadzeniu wyzwalacza wykonano ją tylko raz?
EDYTOWAĆ: Jak mam to zrobić w tym kodzie?
$("#products").mouseenter (function () {
$(".slider").animate({"margin-top":"0px"},750);
$("#p_dropdown").animate({"height":"96px","margin-top":"45px"}, 750);
$(".products_dropdown").animate({"height":"32px"},750);
});
$("#p_dropdown").mouseleave( function() {
$(".slider").delay(750).queue(function(n){$(this).animate({"margin-top":"46px"},1150)});
$("#p_dropdown").animate({"height":"0"}, 750);
$(".products_dropdown").animate({"height":"0px"},750);
});
Odpowiedzi:
3 dla odpowiedzi № 1jQuery"s funkcja jeden robi dokładnie to, czego szukasz. Każde zdarzenie, które się połączysz, zostanie wykonane tylko raz.
Na przykład,
$("#div1").one("click", function() {
alert("Will be shown only once");
});