我有一个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
语句之前声明