我目前有一个列表,其中包含一个隐藏/显示隐藏 div 的特定链接。单击链接时,将删除并添加“活动”类,并检查隐藏的 div 以查看它是可见的还是隐藏的,并相应地隐藏/显示。这一切正常,但是,有一个问题。当我单击 Square 时,我想显示 #square,但是当我再次单击它时,我想隐藏 #square 但因为我正在检查 .active,所以无法完成。任何人都可以就如何更新代码提供任何建议以实现这一目标?
JS
$(document).ready(function(){
var square = $('#square'),
test = $('#test');
square.hide();
test.find('a').on('click', function(e){
if( !$(this).hasClass('active') ){
if ( square.is(':visible') ){
square.hide();
}
var id = $(this).data('id');
test.find('a').removeClass('active');
$(this).addClass('active');
if( id === 'square' ){
square.show();
}
}
e.preventDefault();
});
});
HTML
<ul id="test">
<li><a href="#">Triangle</a></li>
<li><a href="#" data-id="square">Square</a></li>
<li><a href="#">Circle</a></li>
</ul>
<div id="square"></div>
小提琴:http: //jsfiddle.net/xBuUY/