繁体   English   中英

jQuery slideUp()影响其他列表的slideDown()

[英]jQuery slideUp() effected for other list's slideDown()

我面临一个问题。 我有一些清单项目。 单击列表后,将打开其自己的子级,并添加一个'.open'类。 单击该'.open'类时,该列表的子级将被隐藏。 因此,我将代码编写如下:

$('body').on('click', '.list-group li a', function() {
    // hide all other child
    $('.list-group .child').hide();
    $('.list-group li a').removeClass('open');

    // Open this list's child
    $(this).addClass('open');
    $(this).parent().find('.child').slideDown();
});

$('body').on('click', '.list-group li a.open', function() {    
    // hide this list's child
    $(this).removeClass('open');
    $(this).parent().find('.child').slideUp();
});

但是,在隐藏$(this)列表的子级时,它将首先尝试slideDown()然后再slideUp() 我可以理解此代码可能对此负责:

// hide all other child
$('.list-group .child').hide();
$('.list-group li a').removeClass('open');

如何解决这个问题?

小提琴作品

.open应用.open时,您的click监听器似乎都两次触发。 .on('click', '.list-group li a')函数中使用:not选择器似乎可以解决此问题

$('body').on('click', '.list-group li a:not(.open)', function() {
    // ....
}

JSFiddle链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM