2013-11-25 46 views
0

我有這個小提琴。如果鼠標進入徽標,請停止fadeOut

http://jsfiddle.net/LTSSx/15/

現在它淡出鼠標離開的時候。但是當鼠標離開並再次輸入標誌時,我想清除超時。但是,當我清除超時時,該功能停止工作,因爲在啓動時沒有計時器。請幫助我,謝謝。

$('.logo').mouseenter(function(){ 
    $('.bubble-container').fadeIn(); 
}); 

$('.logo').mouseleave(function(){ 
    setTimeout(function() { 
     $('.bubble-container').fadeOut(); 
    },1000); 
}); 

回答

3

很肯定這會工作。只需將超時設置爲全局變量,clearTimeout就可以訪問它。

var fadeOutTimeout; 

$('.logo').mouseenter(function(){ 
    clearTimeout(fadeOutTimeout); 
    $('.bubble-container').fadeIn(); 
}); 

$('.logo').mouseleave(function(){ 
    fadeOutTimeout = setTimeout(function() { 
     $('.bubble-container').fadeOut(); 
    },1000); 
}); 
+0

完美地工作! – thenewseattle

+1

哈哈,打我30秒。做得好。 –

+0

你確定它可行嗎? http://jsfiddle.net/LTSSx/19/ – gibberish

1

它撥弄工作:http://jsfiddle.net/LTSSx/18/

var timer = ''; 
$('.logo').mouseenter(function(){ 
    clearTimeout(timer); 
    $('.bubble-container').fadeIn(); 
}); 

$('.logo').mouseleave(function(){ 
    timer = setTimeout(function() { 
     $('.bubble-container').fadeOut(); 
    },1000); 
}); 
+0

伊斯蘭會議組織,要停止的setTimeout – DrCord

+0

嘗試用clearTimeout(); – DrCord

+0

羅克偷了我的答案,並得到了檢查..lame – DrCord