作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码部分工作。我是 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/
我是一名优秀的程序员,十分优秀!