【问题标题】:javascript getInterval call with var name带有 var 名称的 javascript getInterval 调用
【发布时间】:2014-11-13 16:02:20
【问题描述】:

您能否就以下一般 javascript 实现问题提出建议: 我从 JStree 动态构建 jastgage 对象,我得到一个数组,并且对于数组中的每个 elemenet,我 bulid 3 diff jastgage 对象 每个对象都有唯一的名称。

$('<div id="g1_'+i+'" class="gaugeObj"></div>').appendTo(".inner");
window["g1_"+i] = new JustGage({
    id: "g1_"+i,
    value: 0,
    min: 0,
    max: 100,
    gaugeWidthScale:"0.55",
    title:"CPU:"+ arrSel[i]                                         
});

"i" 是数组中的索引号...(我的 obj 名称是 j1_0 、 j2_0 、 j3_0 、... j1_1 、 j2_1 、 j3_1 .....) 我可以根据需要查看所有对象,但是当我尝试刷新值时(就在我创建对象之后)

setInterval(function() {
    g1_(i).refresh(getRandomInt(0, 42));                     
 }, 1500);   

它失败了,没有刷新,调试显示 : g1_ 没有定义

知道我做错了什么吗?

【问题讨论】:

  • 我没有看到您在任何地方定义名为 g1_ 的函数。您希望它来自哪里?
  • 你需要写:setInterval(function() { g1_1.refresh(getRandomInt(0, 42)); }, 1500);
  • @Aravind 这些 id 是动态的,i 是必需的。
  • 我用 "window["g1_"+i] = new JustGage({" ...

标签: javascript justgage


【解决方案1】:

您将g1_ 集存储在您的窗口对象中,因此只需按照您定义它们的方式访问它们。

window["g1_"+i].refresh(getRandomInt(0, 42));

就目前而言,JavaScript 正在寻找一个名为 g1_ 的函数,这不是一个函数,它是未定义的。您会在控制台中看到它

【讨论】:

  • TypeError: window[("g1_" + i)] 未定义
  • 记录窗口对象,看看定义了什么
猜你喜欢
  • 2013-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-08
  • 2011-04-29
  • 2011-08-10
  • 1970-01-01
相关资源
最近更新 更多