我正在尝试创建一个简单的按钮管理器来选择并最终取消选中包含CSS类img
的所有已检查的.my_class
元素,为什么这不起作用?
var last_selected;
$("img.my_class").click ( function () {
if (last_selected != null) alert ($(this) == last_selected); // returns false everytime
last_selected = $(this);
});
答案 0 :(得分:1)
它不起作用,因为每次调用$(this)
时都会创建一个新的jQuery包装器对象。
相反,请尝试保存“this”:
var last_selected;
$("img.my_class").click ( function () {
if (last_selected != null) alert (this === last_selected);
last_selected = this;
});
答案 1 :(得分:1)
为什么不将'selected'类分配给当前选择的img?
$('img.my_class').click(function()
{
// remove the selected class from the previous selected
$('img.my_class.selected').removeClass('selected');
// flag the current one as selected
$(this).addClass('selected');
});
答案 2 :(得分:0)
每次打包this
时,都会创建一个新的jQuery对象。两个jQuery对象彼此不相同只是因为它们包含相同的元素($(this) != $(this)
)。
相反,将this
本身分配给last_selected
,一切都应按预期工作。
var last_selected;
$("img.my_class").click ( function () {
if (last_selected != null) alert (this == last_selected);
last_selected = this;
});