我有一个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:无法调用未定义的方法” update”。最奇怪的部分是,我可以看到正在屏幕上绘制Processing.js窗口,仅此而已。.使用工作版本(本文中的第一个),一切都很好,窗口的内容也被绘制了。

我试图将pjs放在drawGraph()函数之外的全局变量中,但是没有运气...
我想念什么?
谢谢!

最佳答案

它应该是

setInterval(drawGraph,1000);


setInterval(drawGraph(),1000);

另外,该函数应在setInterval语句之前声明

08-18 15:27