我有3个扩展div,具有相同的strcuture。类似的东西:
<div class="expand">
<h3 class="more">Click to expand</h3>
<div class="wrapper">Iasdfgh qwerty zxcvbn</div>
</div>
Jquery
$(document).ready(function(){
var toggleButton = $('.expand h3.more');
var expandWrap = $(toggleButton).next('.wrapper');
$(toggleButton).click(function(){
if ($(expandWrap).is('.closed')) {
$(toggleButton).removeClass('closed');
$(expandWrap)
.removeClass('closed')
.slideDown('slow');
} else {
$(expandWrap)
$(expandWrap).slideUp('slow', function(){
$(this).addClass('closed');
$(toggleButton).addClass('closed');
});
}
});
});
现在,当我点击“点击展开”h3
时,所有.wrapper
都会向上和向下滑动。我怎样才能定位下一个立即.wrapper
,因此一次只能切换一个?
答案 0 :(得分:0)
也许使用函数next():
答案 1 :(得分:0)
试试这个
$(document).ready(function(){
var toggleButton = $('.expand h3.more');
$(toggleButton).click(function(){
var thisToggleButton = this;
var expandWrap = $(thisToggleButton ).next('.wrapper');
if (expandWrap.is('.closed')) {
$(thisToggleButton ).removeClass('closed');
expandWrap
.removeClass('closed')
.slideDown('slow');
} else {
expandWrap.slideUp('slow', function(){
$(this).addClass('closed');
$(thisToggleButton).addClass('closed');
});
}
});
});
答案 2 :(得分:0)
你可以简化这一点:
$(function(){
$('.expand h3.more').on('click',function(){
$(this).next('div.wrapper').toggle('slow');
});
});
jsFiddle:http://jsfiddle.net/QzHYX/
编辑:请注意,如果您使用的是较旧版本的jQuery,则必须将on
更改为live
才能生效。