gpt4 book ai didi

javascript - setInterval 和 clearInterval javascript 无法按需工作

转载 作者:行者123 更新时间:2023-11-30 05:55:04 25 4
gpt4 key购买 nike

我有以下代码部分工作。我是 JavaScript 的新手,所以如果我的方法不是最好的,请不要怪我。

window.url_var = "status.htm";
window.elem = "#e1";

function menu_item(){
$(window.elem).click(function (event)
{
$("#divTestArea1").load(window.url_var);
});
}

$("#e1").click(function (event)
{
event.preventDefault();
window.url_var = "demo2.txt";
window.elem = "#e1";
$("#divTestArea1").load(window.url_var);
auto_refresh = setInterval(menu_item(), 5000);
});


$("#e2").click(function (event)
{
event.preventDefault();
window.url_var = "status.htm";
window.elem = "#e2";
$("#divTestArea1").load(window.url_var);
auto_refresh = setInterval(menu_item(), 5000);
});

$("#e3").click(function (event)
{
event.preventDefault();
window.url_var = "form.htm";
window.elem = "#e3";
clearInterval(auto_refresh);
$("#divTestArea1").load(window.url_var);
});


jQuery(document).ready(function() {
$("#divTestArea1").load(window.url_var);
auto_refresh = setInterval(menu_item(), 5000);
});

每当我单击元素 e1 和 e2 时,setInterval 都会按预期工作,一旦我单击元素 e3,该元素就会停止重新加载。

到目前为止,这就是我想要的行为。但如果再次点击 e1 或 e2,我也想再次启动 setinterval。

最后一点是它在上面的代码中不起作用。

如果您能指出正确的方向,我将不胜感激。


在看到我最初问题的一些答案(感谢大家)之后,我来到了这段代码。为了阐明我最初的想法,我需要定期更新我网页上的一些项目,但内容可以通过一些菜单进行更改,而且一些内容(如表格)不应该更新。

window.url_var = "demo2.txt";
var auto_refresh = null;

function setRefresh() {
var self = this;
this.bar = function() {
if(window.url_var != ""){
$("#divTestArea1").load(window.url_var);
auto_refresh = setTimeout(function() { self.bar(); }, 5000);
}
}
this.bar();
}

$("#e1").click(function (event)
{
event.preventDefault();
window.url_var = "demo2.txt";
setRefresh();
});


$("#e2").click(function (event)
{
event.preventDefault();
window.url_var = "status.htm";
setRefresh();
});

$("#e3").click(function (event)
{
event.preventDefault();
window.url_var = "form.htm";
$("#divTestArea1").load(window.url_var);
window.url_var = "";
});


$(document).ready(function() {
setRefresh();
});

最佳答案

尝试使用 2 个不同的变量并在需要时清除所有变量。这是:auto_refresh1 和 auto_refresh2。每次调用 setinterval 时,它都会创建一个具有新 ID 的新计时器。您正在覆盖 auto_refresh 变量,之前的计时器仍会触发。

或者您可以将 setinterval 存储在哈希对象中并运行并清除它们。

关于javascript - setInterval 和 clearInterval javascript 无法按需工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12398546/

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