Добавление времени мышки - PullRequest
1 голос
/ 05 июля 2010

Как мне изменить этот скрипт, чтобы при наведении мыши на подменю он оставался открытым в течение x секунд?

В настоящее время он скользит вверх (прячется), как только я мышью. Мне нужна функция, подобная hoverintent, где она прячется через x секунд.

HTML:

<div id="navigation">
        <ol>
            <li><a href="#" class="parent">Menu 1</a>
                <div class="submenu clear"><div class="listings clear"> content</div></div>
            </li>         
        </ol>
</div>

Спасибо за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 05 июля 2010

Что-то вроде:

jQuery(element_here).delay(5000).slideup('fast', function() {
    bm_item_link_obj.removeClass("bm-item-link-hover");
});

будет работать

Если вы основываете его на html в своем вопросе / JSfiddle, вы измените свой JS в операторе выбора, чтобы он выглядел так:

case "slideUp":
    bm_item_content_obj.delay(5000).slideUp( 'fast',  function() {
        bm_item_link_obj.removeClass("bm-item-link-hover");
    });

Также было бы лучше обернуть:

$("#navigation ol").bigmenu();

в:

$(document).ready(function () {

    // NAVIGATION
    $("#navigation ol").bigmenu();

});

чем

$(window).load(function () {

    // NAVIGATION
    $("#navigation ol").bigmenu();

});

Чтобы получить другиессылки, чтобы скользить вверх, когда вы переходите к другой ссылке сразу, вам нужно это:

$(".submenu").not(bm_item_content_obj).stop(true, true).slideUp("fast");

ниже того, что уже в:

 case "slideDown":

Таким образом, это будет выглядеть так:

case "slideDown":
      bm_item_content_obj.height("auto");
      bm_item_content_obj.slideDown(100);

      $(".submenu").not(bm_item_content_obj).stop(true, true).slideUp("fast");
break;
0 голосов
/ 05 июля 2010

Я чувствую, что здесь кто-то еще работает, но в любом случае код, который заставляет эту вещь исчезнуть, выглядит так:

bm_item_content_obj.slideUp( 'fast',  function() {
    bm_item_link_obj.removeClass("bm-item-link-hover");
});

Так что просто оберните его в таймер, если вы хотите, чтобы это произошло через x секунд:

setTimer(function() {

    bm_item_content_obj.slideUp( 'fast',  function() {
        bm_item_link_obj.removeClass("bm-item-link-hover");
    });

}, 5000); // 5 seconds
...