我想推遲jquery懸停事件。 下面的代碼是我正在使用的代碼。如何推遲jquery懸停事件
$(document).ready(function(){
$('ul.tabs li').hover(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
})
})
我曾嘗試將其更改爲以下代碼無濟於事。
var delay=1000, setTimeoutConst;
$('ul.tabs li').on('hover', function() {
setTimeoutConst = setTimeout(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
}, delay);
}, function(){
clearTimeout(setTimeoutConst);
});
這裏是我的html代碼
<div class="container">
<ul class="tabs">
<li class="tab-link current" data-tab="tab-1">Tab One</li>
<li class="tab-link" data-tab="tab-2">Tab Two</li>
<li class="tab-link" data-tab="tab-3">Tab Three</li>
<li class="tab-link" data-tab="tab-4">Tab Four</li>
</ul>
<div id="tab-1" class="tab-content current">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
<div id="tab-2" class="tab-content">
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<div id="tab-3" class="tab-content">
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</div>
<div id="tab-4" class="tab-content">
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
我仍然在jQuery的初學者,所以我不知道該怎麼辦。 一些幫助會有幫助。 感謝
第二部分應該工作,但你必須用'mouseenter'改變'hover'事件。這是因爲懸停事件是多次觸發的,而不是一次觸發mouseenter。 –
你發佈的html代碼也 –
它已經基於'mouseenter'和'mouseleave',@Matei Mihai。第一個代碼中的錯誤是'.hover()'總是需要第二個函數 - 這是缺少的。另外,它不能與'.on()'結合使用。 – Shikkediel