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);
}
4

1 回答 1

2

您应该为 的第一个参数提供一个函数setInterval。此外,为了正确地为函数调用提供上下文,一个快速的方法是this通过让另一个变量引用它来保存,在这种情况下,我们称之为self

var self = this;

slideTimer = setInterval(function(){
  self.prepareSlide(itemToSlide)
}, 5000);
于 2013-05-03T07:53:23.983 回答