Jquery 下拉菜单鼠标输入延迟
Jquery Dropdown menu mouseenter delay
所以我有一个带有jquery的下拉菜单,它利用了向下和向上滑动功能。
$(document).ready(function(){
$('#menu>li').mouseenter(function(){
$(this).find('ul>li').slideDown(250);
$(this).find('ul>li').css('position', 'relative');
$(this).find('ul>li').css('z-index', 9999);
});
$('#menu>li').mouseleave(function(){
$(this).find('ul>li').slideUp(250);
$(this).find('ul>li').css('position', 'relative');
$(this).find('ul>li').css('z-index', 9999);
});
});
如何使我的 mouseleave 函数执行后在 mouseenter 函数可以再次注册之前有延迟?
提前感谢!
声明一个初始超时为 0 的变量,一旦它进入mouseleave
函数,就会将其更新为要延迟的值。
编辑
使用clearTimeout
清除以前创建的超时。
$(document).ready(function(){
var delay=0;
var timeout;
$('#menu>li').mouseenter(function(){
timeout= setTimeout(function(){
$(this).find('ul>li').slideDown(250);
$(this).find('ul>li').css('position', 'relative');
$(this).find('ul>li').css('z-index', 9999);
},delay);
});
$('#menu>li').mouseleave(function(){
if(typeof timeout!=='undefined'){
clearTimeout(timeout);
}
delay=250;
$(this).find('ul>li').slideUp(250);
$(this).find('ul>li').css('position', 'relative');
$(this).find('ul>li').css('z-index', 9999);
});
});
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 使用jQuery延迟表单输入,并在延迟后在同一页面上显示结果
- 鼠标输入事件上的jQuery延迟出现问题
- AngularJS搜索延迟,直到用户输入字段
- 建议列表捕获用户输入延迟
- 在输入字段中显示文本,字母对字母有延迟
- 弹出框延迟显示在鼠标输入(Angularjs)上
- JS处理延迟后输入仅一次
- Jquery 下拉菜单鼠标输入延迟
- 键控事件中的输入 val() 延迟
- 延迟鼠标输入事件,如果鼠标在元素内引发事件
- 为什么javascript在输入时立即发送事件,而不是在5秒延迟后发送
- 在鼠标输入jquery中使用延迟
- AJAX:在表单字段中输入时延迟搜索
- 在Safari中,第一次对输入调用.focus()会延迟
- jQuery实时鼠标输入延迟
- 延迟的密码输入屏蔽,javascript/jquery中的android风格
- JavaScript输入和输出之间的一个(按键)事件延迟
- jQuery DataTable列过滤器延迟搜索,直到3+字符或输入键
- iPhone点击输入延迟