2014-02-12 48 views
0

當單擊不同的切換div時,我無法使文本恢復爲默認值。除了這一件事之外,其他一切似乎都很好。我在代碼中缺少什麼?我最終不得不再次點擊另一個div,然後纔會最終返回到默認文本。當不同的開關關閉時,文本不會恢復爲默認值

function toggle_visibility(id) { 
    var e = document.getElementById(id); 
    if(e.style.display == 'block') 
     e.style.display = 'none'; 
    else 
     e.style.display = 'block'; 
} 

var menu; 
$(document).ready(function() { 
    $('.bio_container').hide(); 
    $('.bio_button').click(function() { 
     menu = $("#" + $(this).data("menu")); 
     $(".bio_container:not(#" + menu.attr("id") + ")").slideUp(); 
     var biobutton = $(this); 
     menu.slideToggle(function(){ 
      biobutton.text($(this).is(':visible') ? '« Close Biography' : 'Read Full Biography »'); 
     }); 
    }); 
}); 

Here's a fiddle so you can see where I am so far.

回答

0

您沒有主動更新上點擊另一個按鈕的文字,你幾乎沒有。該slideToggle函數內部

缺少行:

$(".bio_button").not(biobutton).text('Read Full Biography »'); 

updated JSFiddle。 請理解,儘管這是一個快速入侵,而且許多選擇器的表現並不是太好 - 如果沒有多少菜單可以滑動,這並不重要。

+0

啊,就是這樣!我很親密。我實際上已經嘗試了一些與此類似的東西,但代碼方面更具侵入性。你的想法簡單而合乎邏輯。謝謝,我感謝幫助> – leekirkham