我有5个元素,类foo
。并且像这样附加一个函数
$('.foo').on('click',someFunction)
但其中一项功能是off()
。我想遍历这些元素并找到关闭函数的元素。任何人都可以告诉我如何实现这一目标。
答案 0 :(得分:1)
你说你取消绑定了点击元素的处理程序,所以this
关键字已经引用了那个元素!您可以使用jQuery.prototype.add
方法将单击的元素存储在数组或jQuery集合中,并在需要时使用它们。
另一个选择是向元素添加标识符(例如类名):
$(this).off('click', someFunction).addClass('bar');
现在您只需使用以下命令获取目标元素:
$('.foo.bar');
答案 1 :(得分:0)
如果你想在另一个函数或脚本中的其他地方引用这个元素,只需使用一个全局变量(最后一个字符串或全部数组" click-ignoring" element / s)并将其存储在那里可能是这样的:
var lastClickedElement = "";
$(".foowrap .foo").each(function(){
$(this).on("click", function(){
$(this).off("click");
lastClickedElement = $(this);
});
});
或者,如果您不想存储整个元素,您只需存储它的索引即可。为此,请将lastClickedElement = $(this);
替换为lastClickedElement = $(this).index();
。
然后,您可以将其称为$(".foowrap .foo").index(lastClickedElement)
。