一种更有效的方法是跟踪最后选择的项目:
var $selected = null;
$(document).on("click", "li", function() {
if ($selected) {
$selected.removeClass('selected');
}
$selected = $(this).addClass('selected');
});
当然,只要该特定功能是唯一可以添加/删除selected
类的功能,这应该可以工作。
可以选择将其包裹在闭包中以删除$selected
变量。
顺便说一句,document
用作您的代表团的锚不是最佳做法。最好选择不会从文档中删除的最近节点。
更新
正如Kevin B所提到的,您可以像这样消除分支:
var $selected = $();
$(document).on("click", "li", function() {
$selected.removeClass('selected');
$selected = $(this).addClass('selected');
});
使用能力$()
是在 1.4 中引入的;在此之前你会使用$([])
.