我有以下的jquery。这基本上是一个内容滑块,当我点击ID为slick-toggle1
的链接时,它会向下滑动匹配的内容slickbox1
。与slick-toggle2 --> slickbox2
etcetc相同。
$('a.clickdown').each(function() {
var $this = $(this);
var index = $this.attr('id').match(/(\d+)$/, '');
var number = parseInt(index[1]);
$this.click(function() {
$('#slickbox' + number).slideToggle(400);
$this.toggleClass('opened').blur();
return false;
});
});
当我点击各个链接时,相应的区域将叠加。但是,我想要达到的目标是:当我点击说slick-toggle2
时,它会显示slickbox2
但会隐藏其他内容(所以slickbox1
& slickbox3
)。
答案 0 :(得分:0)
为要隐藏的每个链接添加hidable
课程,例如<a class="clickdown hidable">
然后在点击功能中,执行$(".hidable").hide();
答案 1 :(得分:0)
我认为您正在搜索 jquery手风琴:http://docs.jquery.com/UI/Accordion。这个jQuery插件自动执行此操作。滑动您单击打开的那个。剩下的就是关闭。
答案 2 :(得分:0)
试试这个,它会找到以slickbox开头的所有元素并将它们滑起来。
$('a.clickdown').each(function() {
var $this = $(this);
var index = $this.attr('id').match(/(\d+)$/, '');
var number = parseInt(index[1]);
$this.click(function() {
$('[id^=slickbox]').slideUp(); // This does the magic.
$('#slickbox' + number).stop(true, true).slideToggle(400);
$this.toggleClass('opened').blur();
return false;
});
});
答案 3 :(得分:0)
向#slickbox
的父母(让我们称之为slick_parent
)和slideUp
所有子div添加一个电话,然后向下滑动所需的框:
$this.click(function() {
$('#slick_parent > div').slideUp();
$('#slickbox' + number).slideToggle(400);
$this.toggleClass('opened').blur();
return false;
});