2013-05-03 29 views
1

我想弄清楚這個自定義jQuery函數是如何通過試驗來工作的。但我不能讓它正常工作。我想打電話給prepareSlide功能在我的setInterval但它說prepareSlide is not defined自定義函數中的調用函數

$('document').ready(function(){ 
    jQuery('.item_holder').itemSlider({ 
     start: 1, 
     carousel: true 
    }); 
}); 
$.fn.itemSlider = function (details) { 
    var currentSlideNumber = (details && details.start > 0) ? details.start : 1; 
    this.prepareSlide = function(slideNumber) { 
     alert(1) 
    } 
    //Set an interval 
    var itemToSlide = currentSlideNumber + 1; 
    slideTimer = setInterval("prepareSlide(" + itemToSlide + ")", 5000); 
} 

回答

2

You should provide a function to the first argument of setInterval。另外,適當地提供上下文的函數調用,快速的方法是有另一個變量引用它,在這種情況下,我們稱之爲self

var self = this; 

slideTimer = setInterval(function(){ 
    self.prepareSlide(itemToSlide) 
}, 5000); 
+0

謝謝您的回答保存this!如果我想從外面打電話給prepareSlide呢? ' ' – CaptainCarl 2013-05-03 08:38:51