2013-07-19 26 views
1

如果我不把它变成一个功能,但内部功能不起作用此脚本运行运行..jQuery脚本内部没有功能

请解释逻辑,我

$(document).ready(function(){ 
     var active=$('.active'); 
     var index=$('#pics li').index(active); 
     var maxindex=$('#pics li').length-1; 

     function makeCircles(){ 
      for (var i=0;i<=maxindex;i++) 
      { 
       var $circle=$("<li>",{class:'circle'}); 
       $('#navCircles').append($circle); 
      } 
     } 
     }); 

中的代码makeCircles功能没有运行。 但是,如果我删除函数并将这些行直接放在变量的下面,它工作正常......如下所示。

$(document).ready(function(){ 
var active=$('.active'); 
var index=$('#pics li').index(active); 
var maxindex=$('#pics li').length-1; 

    for (var i=0;i<=maxindex;i++) 
    { 
     var $circle=$("<li>",{class:'circle'}); 
     $('#navCircles').append($circle); 
    } 
}); 

在此先感谢。

+0

你能告诉我们“非功能代码”是怎么样的吗?也许jsFiddle? – acudars

+8

函数'makeCircles'没有调用任何地方 –

+1

你需要执行一个函数来执行里面的代码,所以添加:'makeCircles()' –

回答

0

你只定义的功能,你还需要执行它:

$(document).ready(function(){ 
    var active=$('.active'); 
    var index=$('#pics li').index(active); 
    var maxindex=$('#pics li').length-1; 

    function makeCircles(){ //define the function 
     for (var i=0;i<=maxindex;i++) 
     { 
      var $circle=$("<li>",{class:'circle'}); 
      $('#navCircles').append($circle); 
     } 
    } 
    makeCircles(); //execute the function 
    }); 
+0

哦!非常感谢!我只是感到困惑,忘了这么做。 –

2

你忘了调用该函数...

$(document).ready(function(){ 
    var active=$('.active'); 
    var index=$('#pics li').index(active); 
    var maxindex=$('#pics li').length-1; 

    (function makeCircles(){ 
     for (var i=0;i<=maxindex;i++) 
     { 
      var $circle=$("<li>",{class:'circle'}); 
      $('#navCircles').append($circle); 
     } 
    })(); 
    }); 
+0

为什么调用是必要的?这是()你调用函数...只是问。 –

+0

因为你所做的只是宣布它。代码将只在您调用该函数时执行。 – mohkhan

0
$(document).ready(function(){ 
    var active=$('.active'); 
    var index=$('#pics li').index(active); 
    var maxindex=$('#pics li').length-1; 

    function makeCircles(){ 
     for (var i=0;i<=maxindex;i++) 
     { 
      var $circle=$("<li>",{class:'circle'}); 
      $('#navCircles').append($circle); 
     } 
    } 
    makeCircles(); // call this function 
}); 

请试试这个。