我正在使用 Twitter Bootstrap 3 做一个网站。我的导航栏上有一个下拉菜单,如果窗口宽度高于 780 像素,我想在鼠标悬停时显示该下拉菜单。如果宽度小于 780 像素,我会看到移动菜单版本,所以在这种情况下,我想在导航栏中单击以显示下拉菜单。我有这段$( window ).resize(function()
代码$(document).ready(function()
if ($(window).width() >= 780) {
jQuery('ul.nav li.dropdown').hover(function () {
jQuery(this).find('.dropdown-menu').stop(true, true).delay(50).fadeIn();
}, function () {
jQuery(this).find('.dropdown-menu').stop(true, true).delay(50).fadeOut();
});
}
使用此代码,如果当我打开网站时我的宽度小于 780 像素,我会看到移动导航栏版本,并且当我点击时下拉菜单会出现,如果我将窗口大小调整为大于 780 像素,则下拉菜单会在悬停时打开(只是我想要的是 !!!!)。
但是,如果我以高于 780 像素的宽度打开网站(鼠标悬停时将显示下拉菜单)并将窗口调整为低于 780 像素的宽度,移动导航栏将在鼠标悬停时打开,这就是问题所在!
对不起我的英语,希望有人能帮助我。
编辑:我想我需要做一个 else 语句来反转 if 语句,但我该怎么做呢?
编辑 Pauix:
function dropdown() {
if ($(window).width() >= 780) {
jQuery('ul.nav li.dropdown').hover(function() {
jQuery(this).find('.dropdown-menu').stop(true, true).delay(50).fadeIn();
}, function() {
jQuery(this).find('.dropdown-menu').stop(true, true).delay(50).fadeOut();
});
}
}
// Execute on load
dropdown();
// Bind event listener
$(window).resize(dropdown);
我尝试了一些其他语句,我能做的最好的就是删除悬停,$("ul.nav li.dropdown").unbind('mouseenter mouseleave');
但是当我单击下拉列表的父级时,我什至看不到下拉列表