我有这个代码:
window.setTimeout(function() {
let sudokuBodyWidth = $sudokuBody.outerWidth(true);
let sudokuBodyHeight = $sudokuBody.outerHeight(true);
console.log(sudokuBodyWidth + ',' + sudokuBodyHeight);
$sudoku.hide();
$welcomeOverlay.css({
width: sudokuBodyWidth,
height: sudokuBodyHeight
}).show();
}, 800);
window.clearTimeout();
我已将此代码放在 setTimeout 中,因为加载 DOM 需要花费大量时间,因此 JS 代码执行时间过早并为值返回 0(这是一个巨大的代码库,我不被“允许”更改站点结构以使 JS 稍后加载)。
问题是这段代码运行了两次。首先,它返回正确的结果,然后在正确值之后立即为两个变量返回 0。如您所见,我添加了 clearTimeout 以防止执行两次。但它一直执行两次。
我也试过:
let welcomeTimeout = setTimeout(function() {
// the code
});
clearTimeout(welcomeTimeout);
执行此操作时,代码根本不执行。
window.clearTimeout()
什么都不做,因为你没有通过返回的 timerId 女巫window.setTimeout()
,这不应该运行两次还有其他的东西女巫导致这个函数运行两次
并在第二个clearTimeout(welcomeTimeout);
清除计时器,这就是您的代码不运行的原因
如果要在文档完全加载后运行代码,则可以使用 window.onload = function(){...}
或者,如果您使用的是 jQuery,那么您也可以尝试 $(document).ready(function(){...})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句