2015-10-22 32 views
0

正在嘗試用下面的代碼如何淡出後幾秒鐘的元素,只有當它是與jQuery可見

if(jQuery('.invalidcontent_wrapper').is(':visible')){ 
    var xSeconds = 4000; 
    setTimeout(function() { 
    jQuery('.invalidcontent_wrapper').fadeOut('fast'); 
    }, xSeconds); 
}; 

幾秒鐘後淡出的元素,但點擊的時候有一個錯誤下一次,當它打開時,它會很快隱藏起來。我怎樣才能以某種方式清除秒數,並且只在顯示元素時才執行此操作?

+0

這哪裏是'if'聲明在什麼位置? –

+0

「點擊下一次時」 - 在您提供的代碼中沒有點擊處理程序。 –

+0

它的例子,讓我加它 –

回答

1

嘗試清除timeout當用戶再次點擊,

var xSeconds = 4000; 
var timeOut = 0; 

jQuery("#someClick").click(function(){ 
    var elem = jQuery('.invalidcontent_wrapper'); 
    if(elem.is(':visible')){ 
    clearTimeout(timeOut); 
    timeOut = setTimeout(function() { 
    elem.fadeOut('fast'); 
    }, xSeconds); 
    } 
}); 
+0

點擊很多次沒有效果是相同的 –

+0

@AnahitDEV你可以做一個小樣本,你在jsfiddle.net面臨? –

+0

這將有點困難,開放元素有一個X關閉它,當在那個關閉Clikcing並再次打開時,我看到這個錯誤 –

相關問題