Почему не просто удалить подкласс из целей как 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 '.
Erm ... и что именно сейчас не работает? Для меня это работает, когда мыши покидают области «item0» и «item1». – raina77ow
, если вы наведите указатель мыши на 'item 0', появится выпадающее меню, затем наведите указатель мыши на выпадающий список, затем вернитесь к' item 0', падение не должно исчезнуть. –
. Первая проблема, которую я вижу, когда трассирую событие mouseOut на консоли - это то, что, когда я поворачиваю мышь вверх по списку и возвращаюсь к item0, это то, что элемент регистрируется как тело, а не этот элемент списка. Возможно, есть проблема с форсированием элементов списка, а не с использованием фактических элементов блока, таких как div. – invertedSpear