我正在使用以下代码来切换隐藏的div。
function toggle_visibility(id) {
var e = document.getElementById(id);
$(e).slideToggle("slow");
}
<div id="toplinks">
<a href="../index.php">Home</a> | <a href="#" onclick="toggle_visibility('aboutus');">About Us</a> | <a href="#" onclick="toggle_visibility('contact');" >Contact us</a> | <a href="#" onclick="toggle_visibility('social');">Social Media</a> | <a href="#" onclick="toggle_visibility('contact');">Send your demo</a> | <a href="#" onclick="toggle_visibility('presskit');">Press Kit</a>
</div><!--toplinks end -->
问题是,如果我点击它们全部,那么它们将同时出现在页面中。 有没有办法自动关闭一个(如果它打开),所以如果点击只出现一个div?
答案 0 :(得分:1)
您可以将您的prev id保存在变量中,如果它不为null,则再次进行切换。例如:
var prevId;
function toggle_visibility(id) {
if(prevId && id !== prevId){
$("#"+prevId).slideToggle("slow");
}
var e = document.getElementById(id);
$(e).slideToggle("slow");
prevId = id;
}
答案 1 :(得分:0)
是
首先,将panel
css类添加到每个面板中,这些面板假设在导航项单击时显示和消失。
其次,将css类添加到每个 <a>
标记及其名称(home,aboutus等...)
然后使用这个jQuery代码:
$(function(){
$('#toplinks a').click(function(){
$('.panel').hide(); // hide all panels
if ($(this).hasClass('home')) {
$('.panel.home').fadeIn(); // show homepage panel
}
else if ($(this).hasClass('aboutus')) {
$('.panel.aboutus').fadeIn(); // show about us panel
}
// more items ...
});
});
希望有所帮助。