2010-06-21 3 views
0

У меня есть html-ссылка, которая использует hover() (ну, плагин hoverIntent ... но с той же разницей), чтобы вызвать div для slidingown (я анимирую верхний атрибут CSS).Мой сломанный jQuery слайд вниз меню с помощью hover()

Все это работает и прекрасно выглядит, за исключением того, что когда мышь перемещается из гиперссылки и в div, которая содержит ссылки меню, она немедленно вызывает событие mouseleave, и меню исчезает.

Очевидно, я чувствовал себя глупым после того, как его бесконечно настраивал, прежде чем замечать эту «ошибку».

Проблема в следующем: я не могу найти способ добиться эффекта, который я хочу.

Вот ссылка на мою работу: http://clifgriffin.com/blockade

Как бы вы, о экспертов, сделать то, что я пытаюсь сделать?

Я попытался отделить функции ввода мыши и мыши от останова ... добавление первого к ссылке, а второе - к div, но это не работает совершенно правильно, и даже если бы я решил эту причуду, Если вы наведете ссылку, а затем переместитесь вверх, то мышь выйдет правильно.

В принципе, до тех пор, пока перемещение мыши по ссылке в меню не вызывает mouseleave, все будет в порядке.

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

Любые идеи?

Спасибо заранее, Клиф

+0

P.S. Проблема с отображением CSS в браузерах, отличных от Firefox, я еще не исправил, но основная проблема главного меню во всех браузерах одинакова. – clifgriffin

ответ

0

попробовать это:

var accoIn = function(){ 
topSlideIn($("#top_menu_slideout .aco")); 
$("#top_menu_links .accommodations").unbind("mouseover");  
}; 

$("#top_menu_links .accommodations").hoverIntent(accoIn,function(){}); 

$("#top_menu_slideout .aco").hoverIntent(function(){},function(){ 
topSlideOut($("#top_menu_slideout .aco"));  
$("#top_menu_links .accommodations").hoverIntent(accoIn,function(){}); 
}); 
+0

Это действительно работает очень хорошо. Скольжение по ссылке, которая запускает слайд-шоу, очевидно, не приводит к ее отмене, но я могу позаботиться об этом, связав некоторые события с верхним div. Спасибо. Это похоже на то, что я имел в виду, но гораздо более элегантный. – clifgriffin

+0

Хорошо, все еще возникают проблемы, и это прекрасно работает. В принципе, мне нужно навести курсор на #top_hide, чтобы вызвать расширенное меню для отмены. Мне также нужно навести курсор на меню, отличное от расширенного, чтобы вызвать тот же эффект. Я пытался это сделать: a) Установка глобального lastTrigger в текущее меню, когда оно скользит вниз. b) Втягивание lastTrigger при зависании #top_hide. c) Втягивание lastTrigger, когда какой-либо другой элемент меню завис. d) Чтение событий на разных этапах, похожих на ваш код. Но у меня странное поведение. И код становится немного из-под контроля. Есть идеи? Clif – clifgriffin

+0

ОК, я проверю это завтра ... главная проблема заключается в том, что эта структура с вкладками на самом деле не совместима с «философией» структуры hoverIntent. Подумайте о его переделке ... –

Смежные вопросы