我遇到了问题。我有一些清单项目。单击列表时,它将自己的子项将打开,并将添加'.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');
如何解决这个问题?
答案 0 :(得分:3)
在应用list_data
时,您的click
个侦听器似乎都会触发。在.open
函数中使用:not
选择器似乎可以解决此问题
.on('click', '.list-group li a')