2012-09-17 3 views
0

У меня есть Nav, у которого есть выпадающее подменю. Когда падение вниз кажется я хотел бы объединение меню + падение вниз, как это:Объединение jquery на mouseenter

enter image description here

так, что если выходы мыши весь этот блок в розовом цвете, то к югу нав исчезает. В настоящее время, если мышь выходит только с раскрывающимся списком, выпадающее меню исчезнет. Я видел this example, но объединение класса не помогло мне.

Вот MY FIDDLE

+0

Erm ... и что именно сейчас не работает? Для меня это работает, когда мыши покидают области «item0» и «item1». – raina77ow

+0

, если вы наведите указатель мыши на 'item 0', появится выпадающее меню, затем наведите указатель мыши на выпадающий список, затем вернитесь к' item 0', падение не должно исчезнуть. –

+0

. Первая проблема, которую я вижу, когда трассирую событие mouseOut на консоли - это то, что, когда я поворачиваю мышь вверх по списку и возвращаюсь к item0, это то, что элемент регистрируется как тело, а не этот элемент списка. Возможно, есть проблема с форсированием элементов списка, а не с использованием фактических элементов блока, таких как div. – invertedSpear

ответ

0

Почему не просто удалить подкласс из целей как mouseenter И mouseleave? Как this:

var animate; 
$(".myClass").mouseenter(function() { 
    clearTimeout(animate); 
    $('.myClass').css('background-color','#777'); 
    $('.mySubClass').css('display','inline'); 
}); 
$(".myClass").mouseleave(function() { 
    animate = setTimeout(function(){ 
    $('.myClass .mySubClass').css('display','none'); 
    $('.myClass').css('background-color','#49616a'); 
    }, 800); 
});​ 

..., как .myClass крытая площадь уже объединение меню и капли (как соответствующий элемент включает в себя как ссылку и выпадающее меню).

Я исправил еще одну потенциальную ошибку здесь: можно чередовать события mouseleave-mouseenter слишком быстро, тогда функция тайм-аута будет срабатывать, даже если она не должна (поскольку курсор остается в области меню). Чтобы предотвратить это, добавлена ​​дополнительная переменная (animate); он хранит тайм-аут в обработчике mouseleave и очищает его в `mouseenter '.

+0

Я не понял, что '.myClass' охватывает область IS уже объединение меню и падение –