плагин waitForIt


Кто-нибудь хочет прокомментировать этот плагин я делаю? (улучшение и т. д.)

(function($) {

    var methods = {
        init: function(data) {

            var options = {
                function: null,
                timeout: 1000,
                option: undefined
            }

            return this.each(function() {
                var self = $(this);
                $.extend(options, data);
                setTimeout(function() {
                    self[options.function].apply(self, [options.options]);
                }, options.timeOut)
            })
        }

    }

    $.fn.waitForit = function(method) {
        // Method calling logic
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' + method + ' does not exist on jQuery.waitForit');
        }

    };
})(jQuery);

Вот скрипку: http://jsfiddle.net/maniator/Ad3pv/



439
-8
задан 9 мая 2011 в 07:05 Источник Поделиться
Комментарии
1 ответ

в jQuery уже есть эта функция. Несколько анимаций в элементе уже автоматически очереди и ждать, пока предыдущие анимации запуска. Если вы хотите сделать паузу между двумя анимации вы можете использовать .задержка().

Например:

$('div.B').show('blind').delay(1000).fadeOut().delay(500).fadeIn(1000);

будет делать то, что ваш пример с плагин делает (сроки, возможно, необходимо скорректировать немного).

Также методы анимации вызова принимать функцию обратного вызова в качестве аргумента, который будет вызван, когда, что конкретно, как анимация закончится.

4
ответ дан 10 мая 2011 в 02:05 Источник Поделиться