javascript - 下拉菜单仅适用于 Chrome

标签 javascript jquery

我不得不将下拉菜单修改为电子商务网站中的一个元素,由于 html 结构,无法使用 css 来完成显示/隐藏。

我想出了这段代码,但它只适用于 Chrome。在 IE 和 Firefox 中,当光标离开蓝色并移至红色上方时,下拉菜单立即消失。这是为什么?我应该如何解决它?

$("#button").hover(
  function() {
    $("#mainmenu").show();
  },
  function() {
    if (!$("#mainmenu").is(":hover")) {
      $("#mainmenu").hide();
    }
  }
);

$("#mainmenu").hover(
  function() {
    
  },
  function() {
      $("#mainmenu").hide();

  }
);
#button{
  width: 300px;
  height: 30px;
  background-color: blue;
}
#mainmenu{
  width: 300px;
  height: 600px;
  background-color: red;
  position: absolute;
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="button"></div>
<div id="mainmenu"></div>

最佳答案

$("#mainmenu").hover()的第一个回调函数中添加$("#mainmenu").show();:

$("#button").hover(
  function() {
    $("#mainmenu").show();
  },
  function() {
    if (!$("#mainmenu").is(":hover")) {
      $("#mainmenu").hide();
    }
  }
);

$("#mainmenu").hover(
  function() {
    $("#mainmenu").show();
  },
  function() {
    $("#mainmenu").hide();

  }
);
#button {
  width: 300px;
  height: 30px;
  background-color: blue;
}

#mainmenu {
  width: 300px;
  height: 600px;
  background-color: red;
  position: absolute;
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="button"></div>
<div id="mainmenu"></div>

关于javascript - 下拉菜单仅适用于 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44951374/

相关文章:

javascript - 我用我的 PHP 调用的数据文件被神秘地改变了。用户是否覆盖了它?

javascript - SlickGrid 中可以使用可变行高吗?

jquery - 是否可以根据URL是否包含 "page="等字符串来隐藏div

JavaScript 标题作为标题不起作用

javascript - JQuery:用于移动使用的精简版 Slider 控件?

javascript - 如何使 jQuery 的 .offset() 工作?

javascript - 我应该使用哪个 node.js 套接字引擎?

javascript - 通过 Meteor 更新 KineticJS Canvas 元素

删除选择列表的Javascript循环限制不断变化

javascript - Chart.js - 样式图例