您的位置:首页 > Web前端 > BootStrap

hover事件延迟处理方法

2017-01-25 10:37 429 查看
先来说说项目中遇到的问题.



这里用的是bootstrap的框架,框架内tab切换是点击切换,但是需求换成鼠标滑过切换,点击进入全部列表。这里稍微修改下脚本。

//  鼠标滑过tab切换
$(".widget-infoMode").each(function () {
var item = $(this).children(".nav-tabs").find("li");
$(item).mouseover(function () {
var _this = $(this).index();			    $(item).eq(_this).find("a").stop(true,true).tab("show");
});
//  点击tab切换详情页
$(item).on("click", function () {
var href = $(this).find("a").attr("href");
if(href !== null || href !== undefined || href !== ''){
window.open(href);
}
})
});

这里就会有问题,经常会碰到两个列表tab页在同一个页面展示的情况。


原因是hover绑定事件干扰,这里就需要对hover事件进行延时处理。

修改后的代码如下:

//  鼠标滑过tab切换
$(".widget-infoMode").each(function () {
var hoverTimer;
var item = $(this).children(".nav-tabs").find("li");
$(item).hover(function () {
var _this = $(this).index();
hoverTimer = window.setTimeout(function(){
console.log(_this);
$(item).eq(_this).find("a").stop(true,true).tab("show");
},200);
}, function () {
clearTimeout(hoverTimer);
});
//  点击tab切换详情页
$(item).on("click", function () {
var href = $(this).find("a").attr("href");
if(href !== null || href !== undefined || href !== ''){
window.open(href);
}
})
});


重点就是js的setTimeout方法,设置事件,延时触发函数,避免用户不经意的触发切换事件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bootstrap 鼠标