2012-12-28 62 views
4

我想要有兩個按鈕,一個淡出div1,另一個淡入div1,或淡出按鈕本身(如果div1已隱藏)。這裏的代碼,很不必要的,雖然,因爲我的主要問題是「如果」的聲明......如何檢測元素是否已淡出

$('#b > button').click(function(){ 
    $('#div1').fadeOut(400) 
}); 

$('#div2 > button').click(function(){ 
    $('#div1').fadeIn(400) 
}); 
+0

你已經破了引號。 –

回答

2

爲什麼不來禁用/啓用按鈕?

$('#b > button').click(function(){ 
    $('#div1').fadeOut(400, function() { 
     $(this).prop('disabled', true); 
     $('#div2 > button').prop('disabled', false); 
    }); 
}); 

$('#div2 > button').click(function(){ 
    $('#div1').fadeIn(400, function() { 
     $(this).prop('disabled', true); 
     $('#b > button').prop('disabled', false); 
    }); 
}); 
+1

這是一個更好的解決方案,因爲其他兩個建議都涉及從DOM中讀取,而在性能不變的情況下完全不必要和昂貴。在代碼中維護狀態好得多,並且像這樣的一個簡單的切換就可以工作。寫入DOM然後從DOM讀取更好。 – Valjas

14

淡出簡單地改變displaynone。如果顯示器沒有使用

檢查jQuery的$('selector').css('display')

+13

或'.is(「:visible」)' –

+0

爲什麼要從DOM讀取,如果你不需要? – Valjas

+1

實際回答問題的投票 –