关闭不同的切换时,文本不会返回默认值

时间:2014-02-12 07:26:39

标签: javascript jquery html css slidetoggle

当点击不同的切换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.

1 个答案:

答案 0 :(得分:0)

你没有在点击时主动更新其他按钮的文字,你几乎就在那里。

slideToggle函数中缺少一行:

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

updated JSFiddle。 请理解这是一个快速的黑客,并且许多选择器的表现并不是太大 - 如果你没有很多菜单可以滑动,那就无所谓了。