2011-05-09 161 views
1

試圖建立一個簡單的切換,其中有人點擊一個列表項目與ID,它顯示一個div與所述列表項目,然後點擊不同的列表項目,第一個div淡出和新的div淡入,顯然應該工作,如果你點擊<li id="1">然後<li id="3">,然後回到1,它工作正常。jQuery切換問題 - 淡入淡出div

這是我的代碼到目前爲止。

$(document).ready(function() { 
    $('#list li').toggle(function() { 
     var $value = ($(this).attr('id')); 
     $('#song' + $value).fadeIn(); 
    }, 
    function() { 
     $('#song' + $value).fadeOut(); 
     var $value = ($(this).attr('id')); 
     $('#song' + $value).fadeIn(); 
    }); 
}); 

謝謝!亞光

+0

爲什麼要使用$值,而不是VAR值? – 2011-05-09 19:33:24

+0

@peri忽視了變種。 @neal,它只適用於一個實例,我不能點擊id1,然後id2,然後回到id1。 – 2011-05-09 20:10:04

回答

3

淡出當前可見div的更簡單方法是使用:visible選擇器。另外,如果我正確地理解你的問題,我想你可以只使用.click()而非.toggle()達到預期的行爲:

$('#list li').click(function() { 
    $('#your_container').find('div:visible').fadeOut(); 
    $('#song' + this.id).fadeIn(); // simpler, no intermediate variable needed 
});