我有一个目前工作正常的accoridan切换,除了我想要它,所以一次只扩展一个项目。当你打开一个项目然后打开另一个项目时我会想要关闭原来的项目。
对于我应该添加到代码中以使其工作的任何想法?
以下是代码:
$(document).ready(function() {
$('.internal').hide();
$('.slider').click(function() {
$(this).next('.internal').slideToggle();
}).toggle(function() {
$(this).children("span").html("minus sign");
}, function() {
$(this).children("span").html("plus sign");
});
});
我在这里设置了一个小提琴:http://jsfiddle.net/Lg9Mn/17/
谢谢!
答案 0 :(得分:1)
在显示正确的元素之前,只需使用类internal
隐藏所有元素(使用slideUp
):
$(document).ready(function() {
$('.internal').hide();
$('.slider').click(function() {
$('.internal').slideUp();
$('.slider').not($(this)).children("span").html("plus sign");
if($(this).next('.internal').css("display") == "none"){
$(this).next('.internal').slideDown();
$(this).children("span").html("minus sign");
}else{
$(this).next('.internal').slideUp();
$(this).children("span").html("plus sign");
}
})
});
答案 1 :(得分:0)
试试此代码
$(document).ready(function() {
$('.internal').hide();
$('.slider').click(function() {
$('.internal').not($(this).next('.internal')).hide();
$('.slider').not($(this)).children("span").html("plus sign");
if( $(this).next('.internal').is(':visible')){
$(this).children("span").html("plus sign");
}
else{
$(this).children("span").html("minus sign");
}
$(this).next('.internal').slideToggle();
});
});
需要将此添加到您的点击事件
$('.internal').not($(this).next('.internal')).hide();
<强> Check Fiddle 强>