javascript - 升级 jQuery 会破坏弹出子菜单
问题描述
当每个菜单项悬停时,我有代码显示带有弹出子菜单的菜单。
jQuery:
<script type="text/javascript">
$(document).ready(function() {
var hoverAttributes = {
speed: 10,
delay: 100
};
$("#nav-home").bind("hover", hoverAttributes, function(){
$("#subnav").children().hide();
$("#sub-home").show();
});
$("#nav-library").bind("hover", hoverAttributes, function(){
$("#subnav").children().hide();
$("#sub-library").show();
});
});
</script>
HTML:
<div id="nav">
<table align="right">
<tr>
<td id="menu">
<ul>
<li><a href="../home" id="nav-home">Home</a></li>
<li><a href="../library" id="nav-library">Library</a></li>
</ul>
</td>
</tr>
<tr>
<td id="subnav">
<ul id="sub-home">
<li><a href="../home/forum.jsp">Forums</a></li>
<li><a href="../home/news.jsp">News</a></li>
<li><a href="../home/about.jsp">About Us</a></li>
</ul>
<ul id="sub-library">
<li><a href="../library/resources.jsp">Resources</a></li>
<li><a href="../library/glossary.jsp">Glossary</a></li>
<li><a href="../library/references.jsp">References</a></li>
</ul>
</td>
</tr>
</table>
</div>
此代码使用 jquery-1.6.1.min.js 工作,但是当我升级到 jquery-1.12.4.min.js 时,弹出功能会中断。在页面加载时,第一个菜单项(主页)的子菜单已经展开。将鼠标悬停在它或其他菜单项上不会导致显示内容发生变化。
我发现该bind()
操作在 jQuery 3.0 中已被弃用,但它应该仍然适用于 1.12.4,不是吗?我找不到任何关于或被弃用children()
的记录。hide()
show()
对于上下文,我对 jQuery 和 JavaScript 知之甚少。这是因为我必须修复别人的代码。
解决方案
您是否尝试过将 .bind 更改为$(".selector").on("mouseover", function () {..});
推荐阅读
- python - 多个python列表到json文件
- css - 如何使用 scss @include
- android - 如何增加自定义edittext高度?
- excel-formula - 如何在excel中编写正确的IF公式?如果 value=smth,写入下一个值
- angular - 侧边栏项目未在 Angular 2 的侧边栏菜单中突出显示
- reactjs - Material-UI - 如何在自动完成中自定义下拉图标?
- php - PHPUnit - 错误:调用测试文件中未定义的函数
- c++ - 使用两个定时器 Qt
- node.js - 无法修复 npm 审计中的最后 2 个漏洞。“npm audit fix --force”没有帮助
- python - 在 np.array 中求和