jQuery fadeOut, когда мышь не сфокусирована на элементе, или его брат - PullRequest
1 голос
/ 08 марта 2012

У меня есть элемент с идентификатором basket, когда отображается поверх другого элемента, но этот элемент не является ни дочерним, ни прямым братом первого. Я надеюсь, что это имеет смысл.

При наведении мышки на первый или второй элемент я бы хотел, чтобы второй элемент исчез, но, похоже, я не могу найти способ объяснить это Jquery.

Вот тот Jquery, который я использую: -

$("#basket").mouseenter(function(){
    $("#cartContents").fadeIn("slow");
});
$("#basket").mouseout(function(){
    $("#cartContents").fadeOut("slow");
});

Во втором правиле я хотел бы добавить что-то вроде «делайте только этот бит, если мышь НЕ зависает над #cartContents»

Может кто-нибудь сказать мне, что мне нужно сделать, чтобы достичь этого /

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

Вам нужно добавить проверки наведения к существующему коду, чтобы он работал ...

$("#basket").mouseenter(function(){
    $("#cartContents").fadeIn("slow");
});
$("#basket, #cartContents").mouseout(function(){
    if ($("#basket").is(":hover") || $("#cartContents").is(":hover")) return;
    $("#cartContents").fadeOut("slow");
});

Он просто проверяет состояние наведения корзины и корзины, когда вы покидаете одну из них и толькоисчезает, если вы не закончите ни один из них.

Вот рабочий пример ...

http://jsfiddle.net/fCxrr/1/

0 голосов
/ 08 марта 2012

Ответ на второй вопрос заключается в том, чтобы отменить привязку события, когда мышь наводит курсор на cartContents, и повторно привязать его, когда мышь выходит из cartContents.просто посмотрите на методы jquery bind () и unbind () и используйте mouseenter, mouseout или hover для привязки / отмены привязки событий.

...