2012-02-18 11 views
2

我的jQuery不會這樣:JQuery的,找出哪些是可見的,隱藏

$(document).ready(function(){ 


$('#settings_button').click(function(){ 

if ($('div#edit_profile:visible')) 
{ 
$('#edit_profile').fadeOut(function() {$('#account_settings').fadeIn();}); 
} 
else if ($('div#leave:visible')) 
{ 
$('#leave').fadeOut(function() {$('#account_settings').fadeIn();}); 
} 
}); 



$('#edit_button').click(function(){ 

if($('div#account_settings:visible')) 
{ 
$('#account_settings').fadeOut(function() {$('#edit_profile').fadeIn();}); 
} 
else if ($('div#leave:visible')) 
{ 
$('#leave').fadeOut(function() {$('#edit_profile').fadeIn();}); 
} 

}); 


}); 

這類作品,只是,雖然「離開」的div是visable,也不會隱藏。我如何檢測它是否可見,如果是,它會淡出它。我試過了,似乎沒有奏效。這樣做的最好方法是什麼?我希望我解釋得很好。 -Sal

編輯,我發現我的答案是:

$(document).ready(function(){ 


$('#settings_button').click(function(){ 

if ($('div#edit_profile').is(':visible')) 
{ 
$('#edit_profile').fadeOut(function() {$('#account_settings').fadeIn();}); 
} 
else if ($('div#leave').is(':visible')) 
{ 
$('#leave').fadeOut(function() {$('#account_settings').fadeIn();}); 
} 
}); 



$('#edit_button').click(function(){ 

if($('div#account_settings').is(':visible')) 
{ 
$('#account_settings').fadeOut(function() {$('#edit_profile').fadeIn();}); 
} 
else if ($('div#leave').is(':visible')) 
{ 
$('#leave').fadeOut(function() {$('#edit_profile').fadeIn();}); 
} 

}); 


}); 
+0

等待!我是個白癡!我需要使用:($('div#edit_profile')。is(':visible')) – Silas 2012-02-18 11:55:12

+4

如果這是你的解決方案,你可以發佈它作爲答案 – gideon 2012-02-18 11:55:47

+0

它不會讓我:(我有小於100代表所以我可以; t答案8小時。答案是如果($('div#account_settings')。是(':可見'))我必須使用is()函數 – Silas 2012-02-18 11:57:12

回答

0

正如你已經認識到,想要.is(':visible')符號。我只是想附和,這是一個完美的機會,讓你提取功能:

function toggleIfVisible(hide, show) { 
    var $hide = $(hide); 
    if($hide.is(':visible')) { 
     $hide.fadeOut(function() { $(show).fadeIn() }); 
    } 
} 

toggleIfVisible('#edit_profile', '#account_settings'); 

編輯:當你這樣做,你甚至可以使一個jQuery方法:

$.fn.hideAndShow = function(other) { 
    if(this.is(':visible')) { 
     this.fadeOut(function() { $(other).fadeIn() }); 
    } 
} 

$("#edit_profile").hideAndShow("#account_settings"); 
相關問題