2011-06-03 91 views
0

我創建jquery插件 和錯誤我得到的是參考誤差:mySlider沒有定義jquery插件問題

(function($){ 

$.fn.mySlider = function(){ 
    var timeOut = 4000; 
    var element = this; 
    var fxDuration = timeOut/6; 

    var items = $("#" + element[0].id + " li"); 
    var captions = $("#" + element[0].id + " li div"); 

    var fadeIn = function(no){ 
     $(items[no]).fadeIn(fxDuration, function(){ 
      $(captions[no]).fadeIn(fxDuration, function(){ 
       setTimeout(function(){fadeOut(no)}, timeOut); 
      }); 
     }); 

    } 

    var fadeOut = function(no){ 
     $(captions[no]).fadeOut(fxDuration, function(){ 
      $(items[no]).fadeOut(fxDuration, function(){ 
       fadeIn(calcNext(no)); 
      }); 
     }); 

    } 

    var calcNext = function(no){ 
     return ((no+1) == items.length)? 0: (no+1); 
    } 

    fadeIn(0); 

} 

})(jQuery的);

,並呼籲

<script src="jquery-1.6.1.min.js" type="text/javascript" charset="utf-8"></script> 
    <script src="mySlider.js" type="text/javascript" charset="utf-8"></script> 
    <script> 
    // alert('hi'); 
     $(document).ready(function(){ 
      alert(mySlider()); 
      //$("#slider").mySlider(); 
     }); 
    </script> 

它說mySlider沒有定義

請幫我解決這個問題。謝謝

回答

0

它沒有定義,因爲你沒有定義它。

你只定義了$.fn.mySlider

你可能想是這樣的,有一個單獨的功能:

var mySlider = function() { 
    $("#slider").mySlider(); 
}; 
+0

我也嘗試正是這樣,看到我註釋掉線,它沒有這樣的工作我試圖提醒,並仍然是相同的問題 – ktm 2011-06-03 15:54:37

+0

Fisrt:你不能提醒一個沒有定義的函數。 'mySlider()'沒有被定義'$ .fn.mySlider()'是。第二:看看這裏是你的代碼,它做了一些事情,不知道你的目標是什麼,但它確實有效:http://jsfiddle.net/inti/hwyJ3/ – aorcsik 2011-06-03 16:04:02