繁体   English   中英

无法从命名的javascript函数访问元素

[英]Can't access element from a named javascript function

我有一个javascript函数,如果它是匿名的,可以正常工作,但当我将其更改为named时停止工作..为什么?

这是有效的代码:

setInterval( function(){
<% @root.children.all(:order  => "idx DESC").each do |child| %>
        var text2 =    "<%= child.content %>";
      var pjs = Processing.getInstanceById("mysketch2");
    pjs.update(text2);
    <% end %>

}, 3000)

这是不起作用的代码..

<script>
  var interval = setInterval(drawGraph(),1000);
    function drawGraph(){
  <% @root.children.all(:order  => "idx DESC").each do |child| %>
        var text2 =    "<%= child.content %>";
        var pjs = Processing.getInstanceById("mysketch2");
        pjs.update(text2);
      <% end %>

     }

</script>

我得到'未捕获的TypeError:无法调用方法'更新'未定义'。 最奇怪的部分是我可以看到Processing.js窗口正在屏幕上绘制但是就是这样..随着工作版本(这篇文章中的第一个)一切都很好,窗口的内容也被绘制出来..

我尝试将pjs放入drawGraph()函数之外的全局变量中,但没有运气......我缺少什么? 谢谢!

它应该是

setInterval(drawGraph,1000);

setInterval(drawGraph(),1000);

此函数也应在setInterval语句之前声明

这两段代码并不等效:在第一段代码中,您将向setInterval函数传递对未命名函数的引用。 在第二个片段中,您调用drawGraph(),然后将结果值传递给setInterval。

试试:

var interval = setInterval(drawGraph, 1000);

并在调用setInterval之前移动drawGraph的定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM