Javascript 如何";“杀死”;或取消设置超时功能
我如何“杀死”这个setTimout函数而不破坏我的代码? 我试着用clear,但没用 由于某种原因,当我在任何地方删除它时,它都会破坏我的代码(如果我在任何地方删除这个函数也是如此)。 当我在超时执行之前在顶部说“return”时,jQuery显示出来,但我的代码不起作用 还要提到我在Mozilla中加载的jQuery文件。它也会在我的本地机器上以Chrome和Safari加载,但不会在服务器上实时加载(我也使用Wordpress)Safari/Chrome 函数的设置超时Javascript 如何";“杀死”;或取消设置超时功能,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我如何“杀死”这个setTimout函数而不破坏我的代码? 我试着用clear,但没用 由于某种原因,当我在任何地方删除它时,它都会破坏我的代码(如果我在任何地方删除这个函数也是如此)。 当我在超时执行之前在顶部说“return”时,jQuery显示出来,但我的代码不起作用 还要提到我在Mozilla中加载的jQuery文件。它也会在我的本地机器上以Chrome和Safari加载,但不会在服务器上实时加载(我也使用Wordpress)Safari/Chrome 函数的设置超时 function
function queueRender() {
var _this = this;
settings.queueRenderTimeout = setTimeout(function(){
render();
}, settings.debounce);
if(typeof settings.queueRenderTimeout !== "undefined") {
clearTimeout(settings.queueRenderTimeout)
}
render();
}
这里是渲染函数
function render() {
element.find(">").remove();
var t = templates.quiz(quiz);
element.append(t);
$(settings.append).append(element);
}
--所以在本例中,我的jQuery被加载,但我的测验中断了。
如果我更改顺序并将if语句放在第一位,那么我的代码不会中断
以下是我的设置:
var defaults = {
append: "body",
quiz_template: "#quiz_template",
question_template: "#question_template",
answer_template: "#answer_template",
result_template: "#result_template",
shuffle: true
// debounce: 10
}
代码是有时不起作用的东西。它可以在我的本地机器上工作,但不能在服务器上工作。我感觉设置超时仍有一些延迟,即使我将其保留为“未定义”。在设置超时之前,您正在清除超时@不幸的是,13尝试将它们交换起来,但没有成功(我不确定您试图在这里实现什么,但是,是的,在设置超时后,
typeof settings.queueRenderTimeout!==“undefined”
总是正确的,因为settings.queueRenderTimeout
现在是一个超时id。@unlucky13啊,是的!我忘记放置render()最后一个。非常感谢!我真的很感激。不客气!请注意,我认为您的代码中有一些不合理的地方:您设置了一个超时,但没有具体原因就立即清除了它?您是在设置超时之前清除了它!@unlucky13尝试了将它们交换起来——没有效果(我不确定您试图在这里实现什么,但是,是的,在设置超时后,typeof settings.queueRenderTimeout!==“undefined”
总是正确的,因为settings.queueRenderTimeout
现在是一个超时id。@unlucky13啊,是的!我忘记放置render()最后一个。非常感谢!我真的很感激。不客气!请注意,我认为您的代码中有一些不合理的地方:您设置了一个超时,并且没有具体原因就立即清除了它?