使用jQuery编写插件函数

Bar*_*der 1 jquery jquery-plugins

嘿伙计,我有以下功能:

$.fn.slideOut = function(speed,dir) { 
        this.animate({
            dir: '-1000px'
        }, speed);
    };
Run Code Online (Sandbox Code Playgroud)

但方向(dir)并没有结转,也没有给我一个错误.

我这样称呼它: $('#element').slideOut(500,'top');

所以我的问题=为什么它没有动画?:(

T.J*_*der 5

您不能在对象文字属性初始值设定项的左侧(名称)侧使用变量,您所拥有的实际上是属性名称"dir".你必须这样做:

$.fn.slideOut = function(speed,dir) { 
    var opts = {};
    opts[dir] = '-1000px';
    this.animate(opts, speed);
};
Run Code Online (Sandbox Code Playgroud)

有点偏离主题,但可能值得指出插件功能不会链接.除非你有充分的理由不这样做,否则返回this可链接性(在这种情况下,你可以返回返回的内容animate,因为animate返回this):

$.fn.slideOut = function(speed,dir) { 
    var opts = {};
    opts[dir] = '-1000px';
    return this.animate(opts, speed);
};
Run Code Online (Sandbox Code Playgroud)