hide/show toggle div
请帮忙!我一直在试图弄清楚如何在已经打开的时候关闭一个特定的DIV。hide/show toggle div
例如,请查看:http://jsfiddle.net/WGRvw/
如果我点击BC 的DIV应该会出现,但如果我再次点击它时,DIV应该会消失,但我无法弄清楚如何让它消失。另外,我只希望一次出现一个DIV。
我试着做一个else:
$(function(){ $(document).ready(function() { $(".prov").click(function(){ $(".clearfix").hide(); });
$('#BC').hide();
$('#BC-show').click(function() {
if($('#BC').toggle('slow')) {
return false;
}
else {
$('#BC').hide();
}
});
$('#AB').hide();
$('#AB-show').click(function() {
if($('#AB').toggle('slow')) {
return false;
}
else {
$('#AB').hide();
}
});
});
});
});
您的帮助表示赞赏。
谢谢!
您似乎将两个事件附加到每个元素。
一个使用的className 另一个使用ID
试试这个代码
$(function() {
$(document).ready(function() {
$('#BC, #AB').hide();
$(".prov").click(function() {
var id = $(this).attr('id').split('-')[0];
$('.clearfix').not('#'+id).hide();
$('#' + id).toggle('slow');
return false;
});
});
});
只是用类附加的事件,并从中获得ID和用它来切换。
谢谢! 这工作正常...但是,我只想要一个div出现在一次。 – user1652920
当然..如果多数民众赞成在案件中加入这个.. $('。clearfix')。不('#'+ id).hide(); ..检查更新代码 –
太棒了。你真棒!非常感谢! – user1652920
我看起来你的第一个事件处理程序隐藏了该元素,然后切换被调用。因此,切换显示该元素,因为$(".prov").click(function(){ $(".clearfix").hide(); });
正在隐藏它。
如果单击显示链接会发生什么情况是,得到的div隐藏和比你调用切换,基本上再每次显示的格。因此,预期的效果不显示。 这么这么走了以下工作:
更新:
$(document).ready(function() {
$('#BC, #AB').hide();
$('#BC-show').click(function() {
$('.clearfix:visible').not('#BC').hide()
$('#BC').toggle('slow');
return false;
});
$('#AB-show').click(function() {
$('.clearfix:visible').not('#AB').hide()
$('#AB').toggle('slow');
return false;
});
});
谢谢! 但是,如果我删除 $(“。prov”)。click(function(){(“。clearfix”)。隐藏(); }); 多个div将出现..我只想要一个div出现在一次。 – user1652920
$(function() {
$('#BC, #AB').hide();
$('.prov').click(function() {
$('#'+this.id.replace('-show','')).toggle('slow').siblings('div').hide('slow');
return false;
});
});
有没有需要两个DOM准备功能,并绑定到类的第一个函数隐藏元素,绑定到ID的第二个函数切换元素,这些元素现在当然是隐藏的,并且将始终显示。
谢谢。但是,我只想要一个div出现在一次。 – user1652920
@ user1652920 - 已更新? – adeneo
修正在这里:http://jsfiddle.net/WGRvw/141/ – ilivewithian