我有两个我创建的脚本。第一个用于桌面多级下拉导航,第二个用于响应式导航。有没有办法简化/压缩这个脚本,我没有看到?
这是我的简化版本。
$(document).ready(function () {
$('ul.primary li').click(function () {
var a = this;
if ($('ul', this).is(':visible')) {
$('ul', this).slideUp(function () {
$(a).removeClass('active')
})
} else {
$('ul.drop').slideUp();
$('ul.primary li').removeClass('active');
$('ul', this).slideDown();
$(a).addClass('active')
}
});
$('body').click(function (a) {
if (!$(a.target).is('a')) {
$('ul.drop').slideUp();
$('ul.primary li').removeClass('active')
}
});
$(function () {
$('.mobile-nav').click(function (e) {
$('.primary').slideToggle(150, "swing");
e.stopPropagation()
});
$(window).resize(function() {
$('ul.drop').slideUp();
$('ul.primary li').removeClass('active')
});
})
});
这是标记:
<div class="nav">
<div class="mobile-nav">Navigation</div>
<ul class="primary">
<li><a href="#link">Link</a></li>
<li><a class="has-drop">Link w/ Children <span></span></a>
<ul class="drop">
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
</ul>
</li>
<li><a class="has-drop" href="#link">Link w/ Children <span></span></a>
<ul class="drop">
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
</ul>
</li>
<li><a href="#link">Link</a></li>
<li><a href="#link">Link</a></li>
</ul>
<div class="clear"></div>
</div>
</div>
我现在遇到的问题是 window.Resize 函数不会一直触发。我正在寻求在调整窗口大小时关闭所有打开的 ul.drop。
此外,当将浏览器大小调整回桌面宽度时,我的 ul.drops 似乎被切断,并且在刷新之前不会滑过包含元素。
最佳答案
http://dean.edwards.name/packer/是一个自己压缩的好地方。
如何使用非常不言自明:)
关于jquery - 这个 jQuery 下拉脚本可以简化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13586298/