我有一個JavaScript函數,如果它是匿名的,但工作正常,但當我將其更改爲named時停止工作。爲什麼?無法訪問命名的javascript函數中的元素
這裏是工作的代碼:
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>
我得到「遺漏的類型錯誤:無法調用‘未定義更新’ 」。最奇怪的部分是,我可以看到Processing.js窗口正在屏幕上繪製,但就是這樣。使用工作版本(本文中的第一個),一切都很好,並且窗口的內容也會繪製出來。
我試圖將pjs放入drawGraph()函數以外的全局變量,但沒有運氣... 我錯過了什麼? 謝謝!
難道是drawGraph函數必須在setInterval中的調用之上定義嗎? – TGH 2012-03-31 20:40:44
只是爲了完成圖片 - 這是可能的,但不推薦,因爲它執行的隱式eval:var interval = setInterval(「drawGraph()」,1000); – mplungjan 2012-03-31 20:49:28