jQuery延迟在自定义插件中不起作用

时间:2013-05-12 02:29:52

标签: jquery jquery-plugins delay

我创建了一个自定义jquery插件。 它一个接一个地显示元素。

我只是使用delay()来完成它。

但是,只有第一次延迟起作用,之后所有其他元素在第一次延迟的同时出现。

我的插件

(function($){
    $.fn.OneByOne = function( options ){

        var defaults = {
            startDelay:5,           
            duration: 1500,
            nextDelay: 2000
        };

        var options = $.extend(defaults, options);

        return this.each(function(){

            var o =options;
            var obj = $(this);                
            var a = $('a', obj);
            var delay = o.startDelay;

            obj.delay(delay).fadeIn(o.duration);
            delay += o.nextDelay;
        });
    };
})(jQuery);

1 个答案:

答案 0 :(得分:1)

delay var放在函数之外:

(function($){
$.fn.OneByOne = function( options ){

    var defaults = {
        startDelay:5,           
        duration: 1500,
        nextDelay: 2000
    };

    var options = $.extend(defaults, options);
    var delay = options.startDelay;

    return this.each(function(){

        var o =options;
        var obj = $(this);                
        var a = $('a', obj);

        obj.delay(delay).fadeIn(o.duration);
        delay += o.nextDelay;
    });
};
})(jQuery);