我正在尝试为切换内容自定义现有的一些jQuery代码,以允许我关闭所有其他div而不是我点击的那个。
代码:
$('.et_lb_toggle_title').click(function(){
var $this_heading = $(this),
$module = $this_heading.closest('.et_lb_toggle'),
$content = $module.find('.et_lb_toggle_content');
$content.slideToggle(700);
if ( $module.hasClass('et_lb_toggle_close') ){
$module.removeClass('et_lb_toggle_close').addClass('et_lb_toggle_open');
} else {
$module.removeClass('et_lb_toggle_open').addClass('et_lb_toggle_close');
}
});
目前,这允许打开多个div。我想要实现的是当你打开一个div,其他所有人都关闭。
我想我需要使用
定位所有其他div$('.et_lb_toggle_title').not($(this))
我已经挣扎了一段时间,现在我的头在旋转!
如果它有帮助,这是一个jfiddle。注意(div通常默认关闭。)
任何帮助,一如既往地非常感谢!
答案 0 :(得分:1)
尝试
var $contents = $('.et_lb_toggle_content').hide();
var $modules = $('.et_lb_toggle').addClass('et_lb_toggle_close');
$('.et_lb_toggle_title').click(function(){
var $this_heading = $(this),
$module = $this_heading.closest('.et_lb_toggle'),
$content = $module.find('.et_lb_toggle_content');
$content.stop(true, true).slideToggle(700);
$contents.not($content).stop(true, true).slideUp();
$module.toggleClass('et_lb_toggle_open et_lb_toggle_close');
$modules.not($module).removeClass('et_lb_toggle_open').addClass('et_lb_toggle_close');
});
演示:Fiddle