Наведите указатель мыши на указанные div и оставьте оригинальный div открытым - PullRequest
1 голос
/ 27 июня 2011

Я пытаюсь сделать это простым английским языком: у меня есть открытый div из события mouseover, когда я вынимаю мышь из div, он закрывается при выходе из мыши, идеально.Что мне нужно, так это то, что при наведении указателя мыши, если при наведении мыши на div с классом x или классом y, openDiv не закроется, любая указатель мыши на любом другом div, кроме класса x или класса y, приведет к закрытию openDiv.

Вот что у меня пока есть, но это не работает:

$("#openDiv").mouseout(function () {
    var $c = $(e.target); //div where mouse is
    if ($c.is('div.x') || ('div.y')) //if div where mouse is has class x or y
    {
        $("#openDiv").show(); //show or keep open from the mouseover event
    } else {
        $("#openDiv").hide(); //hide openDiv if mouse is anywhere outside openDiv or div with class x or y
    }
});

ОБНОВЛЕНИЕ: Мне нужна дополнительная помощь, чтобы выбрать рабочий ответ!jsfiddle.net/bUzPG/8 При наведении курсора на класс x, y или z он остается открытым, при наведении курсора на x или z цвет openDiv становится розовым, но при наведении курсора на openDiv он также становится розовым, когда он должен стать серым и скрыть его.Есть идеи, как сделать его серым и скрытым?

Ответы [ 2 ]

1 голос
/ 27 июня 2011
$("#openDiv").mouseout(function (e) { //you forgot to add the event `e` element
    var $c = $(e.target);
    if ($c.is('div.x') || $c.is('div.y')) //you forgot $c.is on the second part
    {
        $("#openDiv").show(); 
    } else {
        $("#openDiv").hide(); 
    }
});
0 голосов
/ 27 июня 2011

Почему бы вам просто не сохранить свою простую логику при наведении (скрыть при помощи мыши), а затем просто повторно показать ее, когда мышь находится над делением X или Y.

$('#openDiv').mouseout(function() {
    $(this).hide();
});

$('div.x').mousein(function() {
    $('#openDiv').show();
});

Если вы сделаете так, чтобы у вашего селектора $ ('div.x') был идентификатор или, по крайней мере, контекст, который не является целым DOM, я держу пари, что «мерцание» от скрытия, тогда повторное отображение даже не заметно.

...