2014-12-11 4 views
1

У меня есть меню суперфиша, и я хочу, чтобы он вел себя так, как ожидалось во всех случаях, за исключением того, что у меня есть некоторые элементы подменю, которые я хочу всегда открывать. Я дал им класс SF-исключитьМеню SuperFish предотвращает скрытие элемента с определенным классом

<ul class="sf-menu"> 
    <li><a>Parent Item</a> 
    <ul> ... </ul> <-- this behaves as expected 
    </li> 
    <li><a>Parent Item</a> 
    <div class="sf-mega"> 
     <ul class="sf-exclude"> ... </ul> <-- these menu items remain open always but retain sfHover toggle 
     <ul class="sf-exclude"> ... </ul> 
    </div> 
    </li> 
</ul> 

В моей JavaScript У меня есть что-то вроде этого:

jQuery(".sf-menu").superfish({ 
    onHide: function() { 
    if (this.attr('class') == 'sf-exclude'){return false;} <-- this is not preventing the hide 
    } 
}); 

Я попытался onBeforeHide. Я скорректировал все, что могу, в CSS. Не знаю, что я делаю неправильно ... любые предложения?

ответ

0

Я нашел ответ:

jQuery(".sf-menu").superfish({ 
    onBeforeHide: function() { 
    if (this.attr('class') == 'sf-exclude'){ 
     this.stop(true,true); 
    } 
    } 
}); 

самый большой ключ был просто остановить выполнение каких-либо анимации JQuery в данный момент в стеке, но позволяет процесс, чтобы продолжать идти, так что я могу держать класс sfHover существо добавлено и т. д. Использование stop(true,true) делает это.

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