2014-09-30 69 views
0

我有一个包含一些计算的外部JavaScript文件。结果放入数组中。我写了一些'get'函数来返回传入索引值的值。在我的HTML文件中,我写了一个函数来每隔1秒在一行中显示数组。下面是该代码:JQuery函数按时间间隔显示文本

<script> 
var showSequence = function (target, message, index, interval) { 
    if(index < message.length) { 
     $(target).append(message[index++]); 
     setTimeout(function(){ showSequence(target, message, index, interval); }, interval); 
    } 
} 
</script> 

我把它想:

<body> 
<script> 
    $function(){ 
     for(var i = 0; i < getArrayLength(); i++){ 
      showSequence('#calculations', getArrayValue(i) + '<br />', i, 1000); 
     }    
    } 
</script> 
<h1>Fibonacci Calculation:</h1> 
<p id='calculations'></p> 

不过,我得到一个意外的标记{错误。作为JavaScript新手,我找不到缺少的{。在这寻找一点帮助。

+3

两件事情首先缺少的;在showSequence结尾处('#calculation',getArrayValue(i)+'
',i,1000),那么$ funciton(),我不确定它的合法与否,但可能是另一个实现,我只是没有知道。 – Sebastien 2014-09-30 21:55:31

回答

0

发现的问题。所以我必须等到JQuery准备好才能执行一组函数。我需要更换:

$(function(){ //Do Stuff here }); 

有:

$(document).ready(function() { //Do Stuff here }); 
0

尝试在第二个函数开始时用(代替$,并添加())关闭第二个函数,以创建并调用立即调用函数表达式(“IIFE”)。请参阅What is this (IIFE) construct in javascript?

或者,可以从第二个函数的开始处移除$,为第二个函数提供一个name,并通过name调用第二个函数; i.e.g.,

function runSequence(){ 
      for(var i = 0; i < arr.length; i++){ 
       showSequence('#calculations', arr, i, 1000) 
      }    
     }; 
runSequence(); 

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 
 

 
var showSequence = function (target, message, index, interval) { 
 
    if(index < message.length) { 
 
     $(target).append(message[index++]); 
 
     setTimeout(function(){ showSequence(target, message, index, interval); }, interval); 
 
    } 
 
}; 
 
    // substituted `(` for `$` at beginning of function 
 
    (function(){ 
 
     for(var i = 0; i < arr.length; i++){ 
 
      showSequence('#calculations', arr, i, 1000) 
 
     }    
 
    }()) // added `())` at closing of function
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<h1>Fibonacci Calculation:</h1> 
 
<p id='calculations'></p>

+0

这是使用JQuery的要求。 $表示访问JQuery库。删除所述元素将消除JQuery不是吗?这将是纯粹的JavaScript? – jarheadWill 2014-10-01 01:33:18

0

你为什么要添加$function()?它不存在。 只需把它删掉,它会工作,我认为

JS

//$function(){ 
    for(var i = 0; i < getArrayLength(); i++){ 
     showSequence('#calculations', getArrayValue(i) + '<br />', i, 1000); 
    }    
//} 

编辑:我想我明白你试图做

JS

$(function(){ 
    for(var i = 0; i < getArrayLength(); i++){ 
     showSequence('#calculations', getArrayValue(i) + '<br />', i, 1000); 
    }    
}) 
+0

这是使用JQuery的要求。 $表示访问JQuery库。删除所述元素将消除JQuery不是吗?这将是纯粹的JavaScript? – jarheadWill 2014-10-01 01:32:51

+0

对不起,忘了在帖子中加入你。 – jarheadWill 2014-10-01 01:55:42

+0

我编辑了我的答案。我想你想使用'$(function(){});'这是正确的使用,但$ function()',我认为这是不可能的,因为这意味着你想要调用名为'$ function'函数和你从未宣布过它。或者你需要创建这个函数'$ function(){ //你的代码 }'然后你可以调用函数'$ function()'并且没有错误 – OxyDesign 2014-10-01 06:49:06