0

カスタム jquery プラグインを作成しました。要素を 1 つずつ表示します。

私は単に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);
4

1 に答える 1

1

delayvar を関数の外に置きます。

(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);
于 2013-05-12T02:34:50.883 に答える