2016-02-06 2 views
0

С правой стороны навигационной панели, когда вы нажимаете «Войти», она выдает раскрывающийся список с полем входа и т. Д. Однако, когда вы наводите указатель мыши, он исчезает через секунду.Выпадающее меню Navbar исчезает при наведении указателя мыши

Я не могу понять, что является причиной, что даже если это CSS на основе ...

Любая помощь очень ценится!

_showSubMenu = function(elem, elemID, options, menu, e) { 
    var menuItem = $(e.currentTarget).find('> a'); 
    var subMenu = menuItem.next('.ipsMenu'); 
    $(e.currentTarget).on('mouseleave', _.bind(_hideSubMenu, this, elem, elemID, options, menu)); 
    var itemPosition = ips.utils.position.getElemPosition(menuItem); 
    var itemSize = ips.utils.position.getElemDims(menuItem); 
    var subMenuSize = ips.utils.position.getElemDims(subMenu); 
    if ($('html').attr('dir') == 'rtl') { 
    var right = (itemSize.outerWidth - 5); 
    if ((itemPosition.viewportOffset.right + itemSize.outerWidth + subMenuSize.outerWidth - 5) > $(window).width()) { 
     if ((itemPosition.viewportOffset.right + 5 - subMenuSize.outerWidth) >= 0) { 
     right = ((subMenuSize.outerWidth * -1) + 5); 
     } 
    } 
    subMenu.css({ 
     right: right + 'px', 
     top: (menuItem.position()['top'] - 5) + 'px' 
    }).show(); 
    } else { 
    var left = (itemSize.outerWidth - 5); 
    if ((itemPosition.viewportOffset.left + itemSize.outerWidth + subMenuSize.outerWidth - 5) > $(window).width()) { 
     if ((itemPosition.viewportOffset.left + 5 - subMenuSize.outerWidth) >= 0) { 
     left = ((subMenuSize.outerWidth * -1) + 5); 
     } 
    } 
    subMenu.css({ 
     left: left + 'px', 
     top: (menuItem.position()['top'] - 5) + 'px' 
    }).show(); 
    } 
} 
+0

Я думаю, что лучше, если вы предоставите некоторые коды для поддержки своего вопроса –

+0

Что делает следующая строка? '$ (e.currentTarget) .on ('mouseleave', _.bind (_hideSubMenu, это, elem, elemID, опции, меню));' – musafar006

ответ

0

Похоже, что это основанный на CSS. Я хотел бы избежать с помощью CSS парение, чтобы создать такую ​​функциональность (как это требуется мышь, чтобы остаться на кнопку, или добавить некоторые CSS, который добавляет к нему) ... вместо этого я рекомендую использовать JQuery в функцию переключения:

http://www.w3schools.com/jquery/eff_toggle.asp

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

$("#signIn").click(function(){ 
    $("loginDiv").toggle(); 
}); 

должен сделать трюк.

+0

Большое спасибо за ответ! К сожалению, я никогда не использовал jQuery раньше, поэтому я не знаю, с чего начать или поместить то, что мне нужно, чтобы отредактировать/удалить из текущего CSS. Знаете ли вы, что из того, что теперь используется CSS, вызывает его, поэтому я могу просто его изменить или удалить? – user1446650

+0

Это встроенная декларация элементу elUserSignIn_menu. Вам нужно использовать javascript/jquery, чтобы он работал лучше. Измените отображение: нет; для отображения: block; ... также jQuery мертв просто ... должен взять вас 5 минут, чтобы узнать основы ... хорошо стоит! –

+0

После некоторого копания я нашел некоторый jQuery, который, кажется, использует ... Я не думаю, что CSS вызывает исчезающее меню. Все, что я сделал, это скопировать/вставить код из заголовка в навигационную панель, и я думаю, что jquery используется для исчезновения в зависимости от того, где находится на странице. – user1446650