gpt4 book ai didi

javascript - 将 jQuery 对象传递给 setTimeout 递归函数

转载 作者:行者123 更新时间:2023-11-29 16:10:36 24 4
gpt4 key购买 nike

我试图将 jQuery 对象传递给 setTimout 函数,但没有成功。

这是我目前拥有的 - 它正在工作:

var checkIfElementsExist = function () {

var elements = $('.myElements');

if (elements.length) {
console.log('els are here!');
$(window.document).trigger('elementsExist', [elements]);

} else {
console.log('nope, check it again');
setTimeout(checkIfElementsExist, 500);
}

}

checkIfElementsExist();

但是一旦我从函数中取出 $('.myElements'),并尝试将它作为参数传递给函数,elements.length 总是返回零。

var checkIfElementsExist = function (elements) {

if (elements.length) {
console.log('els are here!');
$(window.document).trigger('elementsExist', [elements]);

} else {
console.log('nope, check it again');
setTimeout(checkIfElementsExist, 500);
}

}

checkIfElementsExist($('.myElements'));

我了解到您不能将参数传递给 setTimeout 函数,因此我尝试将元素作为附加参数传递给 setTimeout 调用,例如setTimout(checkIfElementsExist, 500, elements);,但仍然没有。

更新:

我已经进行了 Pointy 提到的更新,但它似乎仍然不起作用。这是一个JSFIDDLE更好地说明问题。

最佳答案

代替

    setTimeout(checkIfElementsExist, 500);

你可以这样做:

    setTimeout(function( ) { checkIfElementsExist(".myElements"); }, 500);

通过在您的实际函数周围包装一个匿名函数,您可以传入任何您想要的参数。

关于javascript - 将 jQuery 对象传递给 setTimeout 递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29478467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com