我有以下代码部分工作。我是javascript新手,所以如果我的方法不是最好的,请不要责怪我。setInterval和clearInterval 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();
});
remove setInterval(menu_item(),5000);并添加setInterval(menu_item,5000);对于所有的setInterval/setTimeout –