Как установить скорость по умолчанию для конкретного эффекта jquery - PullRequest
2 голосов
/ 04 августа 2011

Я учусь делать AJAX с помощью jquery и нашел способ сделать эффект выделения:

$("#main_table > tbody > tr:first").effect('highlight', {}, 3000)

Есть ли способ сделать скорость по умолчанию 3000 для эффекта выделения, чтобы мне не приходилось повторять ее во всех местах?

Я знаю, что можно изменить скорость jquery fx по умолчанию, но это изменится для всех эффектов, я хочу изменить значение по умолчанию только для одного эффекта.

Ответы [ 2 ]

2 голосов
/ 04 августа 2011

Вы можете написать простую оболочку для эффекта, которая использует скорость по умолчанию:

function highlight(elems){
    elems.effect("highlight", {}, 3000)
}
1 голос
/ 04 августа 2011

Вы можете перезаписать функцию effect в пользовательском интерфейсе jQuery:

(function($) {
    $.fn.extend({
        _effect: $.fn.effect, // backup the original function
        effect: function(effect, options, speed, callback) {
            if (effect === 'highlight') speed = 3000;

            // compose the arguments
            var args = [effect, options || {}];
            if (speed !== undefined) args.push(speed);
            if (callback !== undefined) args.push(callback);

            // call the original function
            return this._effect.apply(this, args);
        }
    });
})(jQuery);

Пример: http://jsfiddle.net/j7Wns/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...