如何为特定的jquery效果设置默认速度

时间:2011-08-03 20:01:41

标签: jquery jquery-ui default effects

我正在学习如何使用jquery制作AJAX并找到了突出效果的方法:

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

有没有办法为高亮效果制作3000默认速度,所以我不必在所有位置重复它?

我知道可以更改默认的jquery fx速度,但是对于所有效果都会改变,我想仅为单个效果更改默认值。

2 个答案:

答案 0 :(得分:2)

您可以为使用默认速度的效果编写一个简单的包装器:

function highlight(elems){
    elems.effect("highlight", {}, 3000)
}

答案 1 :(得分:1)

您可以在jQuery UI中覆盖effect函数:

(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/