这是我的代码:
$('.expand-1').click(function(){
$('.content-1').slideToggle('slow');
$('.expanded-1').toggleClass('expanded-4');
});
$('.expand-2').click(function(){
$('.content-2').slideToggle('slow');
$('.expanded-2').toggleClass('expanded-5');
});
$('.expand-3').click(function(){
$('.content-3').slideToggle('slow');
$('.expanded-3').toggleClass('expanded-6');
});
基本上当你单击它时它会扩展框,但是当我点击下一个框时,其余的仍然保持打开状态,我正在寻找的是一种方式,当Box4或Box3仍然是(Box1)时打开它们将关闭并仅打开Box1,如果Box2单击,则Box1和Box3将保持关闭,依此类推。
此页面上只有3个Box。
答案 0 :(得分:1)
我建议你试试这个:
$('[class^="expand"]').on('click', function () {
var klicked = this.className.slice(-1);
var num = Math.floor(klicked)+3;
$('[class^="content-"]').hide();
$('[class^="content-'+klicked+'"]').slideToggle('slow');
$(this).toggleClass('expanded'+num);
});
答案 1 :(得分:0)
您可以在框中添加通用类,例如box
,然后执行以下操作,
$(".box").click(function(){
$(".box").hide();
$(this).slideDown('slow');
//Do something else with the element
});
答案 2 :(得分:0)
将类.content添加到您的所有内容和
$('.expand-1').click(function(){
$('.content').not($('.content-1')).slideUp('slow'); // Close all open content except 1
$('.content-1').slideToggle('slow');
$('.expanded-1').toggleClass('expanded-4');
});
答案 3 :(得分:0)
最好的方法是关闭所有方框,然后打开你想要的方框。如果您使用所有框的类来扩展/关闭框,那就更好了。
您的HTML应如下所示:
<div class="open">
content 1
</div>
<div class="open">
content 2
</div>
<div class="open">
content 3
</div>
open将是触发器类。
$(document).ready( function(){
$('.open').click(function() {
$('.open').fadeOut('slow');
$(this).fadeIn('slow');
});
})
答案 4 :(得分:0)
试试吧,
$('.expand-1').click(function(){
$('.content-1').slideDown('slow');
$('.content-2,.content-3').slideUp('fast');
$('.expanded-1').toggleClass('expanded-4');
});
$('.expand-2').click(function(){
$('.content-2').slideDown('slow');
$('.content-1,.content-3').slideUp('fast');
$('.expanded-2').toggleClass('expanded-5');
});
......