1
我試圖給jquery下拉菜單添加一個延遲。我已經延遲了正常工作。但它將延遲添加到所有下拉菜單中。下面是我使用的代碼:添加懸停延遲下拉菜單
var timer;
var delay = 1000;
$('.header__nav-main-list > li', '#header').hover(function() {
timer = setTimeout(function(){
$('.header__nav-main-list > li', '#header').children(".header__nav-sub-list").show();
$('.header__nav-main-list > li', '#header').addClass("is-open");
}, delay);
}, function() {
clearTimeout(timer);
$(".header__nav-sub-list").hide();
$('.header__nav-main-list > li').removeClass("is-open");
});
相反,我希望它只會增加延遲到導航項目我懸停所以我想是這樣的下面,而是它無法確定是什麼「這「是指。
var timer;
var delay = 1000;
$('.header__nav-main-list > li', '#header').hover(function() {
timer = setTimeout(function(){
$(this).children(".header__nav-sub-list").show();
$(this).addClass("is-open");
}, delay);
}, function() {
clearTimeout(timer);
$(".header__nav-sub-list").hide();
$('.header__nav-main-list > li').removeClass("is-open");
});
謝謝!我其實嘗試了類似的東西,但寫錯了。我寫了$($ this).children(...)。show(); –
不客氣......你的代碼可能已經工作,如果你第一次聲明並分配了'$ this'例如。 'var $ this = this'(甚至是'var $ this = $(this)') – yezzz