我有一个简单的函数,它将查找特定的类('.clickable')并在单击时添加一个类('.last-clicked)。我想从所有其他现有元素中删除('.last-clicked')类,因此只有一个项目具有该类。
$('.clickable').click(function(event) {
$('.clickable').removeClass('last-clicked');
$(event.target).addClass('last-clicked');
});
我的功能有效,但在包装器和函数中引用$('。clickable')似乎很愚蠢。有更有效的方法吗?
答案 0 :(得分:3)
如果您仅对这些元素使用last-clicked
,请尝试:
$('.clickable').click(function(event) {
$('.last-clicked').removeClass('last-clicked');
$(event.target).addClass('last-clicked');
});
答案 1 :(得分:1)
如果DOM没有添加或删除可点击元素,您可以这样做:
var $clickable = $('.clickable');
$clickable.click(function(event) {
$clickable.removeClass('last-clicked');
$(event.target).addClass('last-clicked');
});
答案 2 :(得分:1)
您可以使用.end()
...
//you can swap out event.target with this, if you like
$('.clickable').click(function(event) {
$('.clickable').removeClass('last-clicked').end().find(event.target).addClass('last-clicked');
});