【发布时间】:2015-09-13 02:54:20
【问题描述】:
我有一个 jquery 点击处理程序,它可以切换列表元素之一:
$(document).on('click', 'ul li', function() {
$(this).toggleClass('expanded');
});
有了它,我可以更改单击展开和折叠的元素。
但是,如果我只希望一个元素被展开,而之前展开的元素在我点击另一个元素时关闭呢?
我想将$(this)(点击li)和li.expanded 传递给toggleClass('expanded') 的jQuery 选择器。
类似的东西(但这不起作用):
$(document).on('click', 'ul li', function() {
$(this, 'ul li.expanded').toggleClass('expanded');
});
提前致谢!
统一更新: 即使之前(在页面开始时)没有展开任何元素,我也需要这个功能才能工作,并且当我点击它时能够折叠以前展开的元素。
如果使用它无法正常工作(不展开第一项):
$('li.expanded', this).toggleClass('expanded');
但适用于:
$('li.expanded').toggleClass('expanded');
$(this).toggleClass('expanded');
【问题讨论】:
标签: jquery jquery-selectors this