所以,当另一个滑落时,我需要一个div来滑动。
示例:
当点击主页按钮时,我们将其称为box_Home
,向下滑动。单击“游戏”按钮后,box_Home
应向上滑动,然后box_Games
应向下滑动。发生的事情是它们重叠而不是交换。
var open = $('.open'),
a = $('ul').find('a');
console.log(a.hasClass('active'));
open.click(function(e) {
e.preventDefault();
var $this = $(this),
speed = 500;
var link_id = $this.attr('id');
var box_id = '#box_' + link_id;
console.log(box_id);
if($this.hasClass('active') === true) {
$this.removeClass('active');
$(box_id).slideUp(speed);
} else if(a.hasClass('active') === false) {
$this.addClass('active');
$(box_id).slideDown(speed);
} else {
a.removeClass('active')
$(box_id).slideUp(speed);
$this.addClass('active');
$(box_id).delay(speed).slideDown(speed);
}
});
答案 0 :(得分:0)
我认为你说你有两个按钮id="Home" class="open"
和id="Game" class="open"
,以及两个div id="box_Home"
和id="box_Game"
。如果是这样,您将class="box"
添加到box_Home和box_Game并执行以下操作:
$('.open').click(function(e) {
e.preventDefault();
var $this = $(this);
var link_id = $this.attr('id');
var box_id = '#box_' + link_id;
$('.box').slideUp();
$(box_id).slideDown();
});
答案 1 :(得分:0)
嗨检查这个小提琴我希望你需要实施的东西 jsfiddle
在if else语句中你犯了一个错误
else if(a.hasClass('active') === false) {
替换为
else if($this.hasClass('active') === false) {
答案 2 :(得分:0)
看看这个 http://jsfiddle.net/rWrJ9/1/
主要观点是......
如果点击的元素为active
,请将其删除,否则: 1。查找(如果有)已active
元素(使用$('.active')
)并使用jQuery.map()要使它们处于非活动状态并向上滑动, 2。会点击该元素active
。
我还删除了不需要的变量a
重要提示: this
功能中的map()
与this
(或更确切地说,$this
之外的内容不同) map()
函数