【发布时间】:2012-06-13 20:14:13
【问题描述】:
我正在开发一个网站,并想修改下拉菜单项的当前代码。这是当前代码:
$(document).ready(function () {
$('#nav li').hover(
function () {
//show its submenu
$('ul', this).slideDown(300);
},
function () {
//hide its submenu
$('ul', this).slideUp(300);
}
);
});
我尝试更改代码以添加超时,目的是在用户将鼠标从菜单上移开时设置超时,这样菜单不会立即切换上滑效果。我想要的效果是,如果用户将鼠标从菜单上移开 200 毫秒,然后将其移回菜单,则它不会执行任何操作。所以菜单要等待 300-400 毫秒才能切换上滑功能。这是我编写的不起作用的代码。部分原因是因为$('ul', this).slideUp(250); 中的this 无论如何,这是我尝试实现但不起作用的代码:
$(document).ready(function () {
var timeoutID;
$('#nav li').hover(
function () {
//show its submenu
$('ul', this).slideDown(250);
window.clearTimeout(timeoutID);
timeoutID = window.setTimeout(SlideUp, 350);
},
);
function SlideUp() {
//hide its submenu
$('ul', this).slideUp(250);
}
});
让程序等待切换上滑功能的最佳方法是什么? 任何想法都值得赞赏。谢谢。
【问题讨论】:
-
jQuery.delay()可能会有所帮助。
标签: javascript jquery menu slidedown slideup