当点击不同的切换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 »');
});
});
});
答案 0 :(得分:0)
你没有在点击时主动更新其他按钮的文字,你几乎就在那里。
slideToggle
函数中缺少一行:
$(".bio_button").not(biobutton).text('Read Full Biography »');
见updated JSFiddle。 请理解这是一个快速的黑客,并且许多选择器的表现并不是太大 - 如果你没有很多菜单可以滑动,那就无所谓了。