首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当宽度大于780px时在悬停时显示的Jquery下拉菜单

仅当宽度大于780px时在悬停时显示的Jquery下拉菜单
EN

Stack Overflow用户
提问于 2013-11-07 20:29:50
回答 1查看 893关注 0票数 0

我正在做一个使用Twitter Bootstrap 3的网站。我的导航栏上有一个下拉列表,我想在窗口宽度高于780px的情况下显示鼠标悬停的下拉列表。如果宽度小于780px,我会看到移动菜单版本,所以在这种情况下,我想单击导航栏以显示下拉菜单。我用$( window ).resize(function()$(document).ready(function()编写了这段代码

代码语言:javascript
复制
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();
    });
}

使用此代码,如果我的宽度小于780px,当我打开网站时,我会看到移动导航栏版本,当我点击时,下拉菜单就会出现,如果我将窗口大小调整到大于780px,下拉菜单就会在悬停时打开(这正是我想要的!)。

但如果我打开的网站宽度高于780px (下拉列表将显示鼠标悬停时),并调整窗口的宽度小于780px,移动导航栏将在鼠标悬停时打开,这就是问题!

我的英语很抱歉,希望有人能帮我。

编辑:我想我需要做一个else语句来反转if语句,但是我该怎么做呢?

为Pauix编辑:

代码语言:javascript
复制
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');移除悬停,但是这样当我点击下拉列表的父级时,我甚至看不到下拉列表

EN

回答 1

Stack Overflow用户

发布于 2013-11-08 18:59:52

我解决了这个问题!在尝试了很多次之后,我想起来我可以用If做同样的事情。

代码语言:javascript
复制
ul.nav li.dropdown:hover ul.dropdown-menu{
display: block; }

所以我使用了一个媒体查询,它是有效的:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19835993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档