重新定义点击选择器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]时使用的是第二项,而不是第一项。

我认为您必须使用递归方法。

可能是:

   var items = ['.item-1','.item-2'];
    function redefine(){
        $(items[1]).click(function(){
            items = ['.item-3', '.item-1'];
            $(this).unbind("click");
            redefine();
        });
    }
    redefine()

相关内容

  • 没有找到相关文章

最新更新