我有一个简单的函数,它将查找一个特定的类('.clickable'),并在单击它时添加一个类(‘..上次单击)。我希望从所有其他现有元素中删除(‘.上次单击’)类,这样该类中只有一个项。
$('.clickable').click(function(event) {
$('.clickable').removeClass('last-clicked');
$(event.target).addClass('last-clicked');
});
我的函数可以工作,但是在包装器和函数中引用$('.clickable')似乎很愚蠢。是否有更有效的方法?
发布于 2013-08-14 19:07:36
如果您只对这些元素使用last-clicked
,请尝试:
$('.clickable').click(function(event) {
$('.last-clicked').removeClass('last-clicked');
$(event.target).addClass('last-clicked');
});
发布于 2013-08-14 19:08:19
如果DOM不会添加或删除可单击的元素,则可以这样做:
var $clickable = $('.clickable');
$clickable.click(function(event) {
$clickable.removeClass('last-clicked');
$(event.target).addClass('last-clicked');
});
发布于 2013-08-14 19:11:55
你可以用.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');
});
演示:http://jsfiddle.net/dirtyd77/eU37H/3/
https://stackoverflow.com/questions/18240148
复制相似问题