[英]Redefine click selector jQuery
我正在尝试使jQuery通过后更新选择器中的值。 我的意思是这个。
我通过这样的选择器。
var items = ['.item-1','.item-2'...];
$(items[1]).click(function(){....});
然后在函数结尾,我更改了项数组的顺序。
var items = ['.item-1','.item-2'...];
$(items[1]).click(function(){
// ... function
items = ['.item-3', '.item-1' ...];
});
现在的问题是该函数已绑定到初始项[1],因此我对数组的更改实际上并不重要。 我很确定应该有一个不太复杂的解决方案,所以请您指出正确的方向吗?
您可以将one
方法与递归架构结合使用
var items = ['.item-1','.item-2','.item-3'];
$(items[1]).one('click', clickHandler);
function clickHandler() {
items = //re-sort items;
$(items[1]).one('click', clickHandler);
}
考虑到数组索引是从零开始的,因此在执行items[1]
时,您将使用第二项而不是第一items[1]
。
我认为您必须使用递归方法。
它可能是:
var items = ['.item-1','.item-2'];
function redefine(){
$(items[1]).click(function(){
items = ['.item-3', '.item-1'];
$(this).unbind("click");
redefine();
});
}
redefine()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.