我对 javascript/jquery 不太感兴趣,但我想做的就是简单地向 mouseenter
函数添加一个超时,我不能做任何戏剧,但我也想做如果用户在超时到期之前离开元素,则清除超时 - 主要是为了允许光标跳过触发元素。
代码如下(mouseenter 有效,mouseleave 有效,但不清除超时):
$(document).ready(function() {
var timeout;
$('#mainMenu ul li').mouseenter(function() {
var dropTab = 'ul.' + this.id + 'Dropdown';
timeout = setTimeout( function(){
$(dropTab).slideToggle("fast") }, 500
);
});
$('#mainMenu ul li').mouseleave(function() {
clearTimeout(timeout);
var dropTab = 'ul.' + this.id + 'Dropdown';
setTimeout( function(){
$(dropTab).slideToggle("fast") }, 250
);
});
});
最佳答案
也许您可以尝试使用.hover()
。这个例子对我有用:http://jsbin.com/egaho3/edit
关于javascript - 清除setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5429154/