我有一个递归 SetTimeout 函数,它在过滤器加载后单击我页面上的过滤器(它们是通过 Ajax 加载的,因此在页面加载时无法立即使用)。
$scope.clickFilter = function () {
var filter = $('.filter-item')
.find('input[value="' + $scope.activeFilter + '"]');
if (filter.length < 1) {
setTimeout($scope.clickFilter(), 1000);
} else {
$(filter).trigger("click");
}
}
但是,当过滤器需要很长时间才能加载时,我会收到“Uncaught RangeError: Maximum call stack size exceeded(...)”
我如何防止这种情况并确保它运行直到完成?