如何使用jQuery插件参数变量

时间:2012-08-31 20:07:27

标签: javascript jquery jquery-plugins

我正在尝试构建一个相当基本的jQuery插件(主要是出于学习原因)并且在我添加limit方法之前我没有出现错误,这看起来非常简单,但我得到以下内容控制台中的错误

  

未捕获的ReferenceError:未定义限制

它适用于下面的第二个if方法(标有注释)

$.fn.query = function(params) {

    // Parameters //
    var options = $.extend({
        'shuffle' : false,
          'limit' : undefined
    }, params),
        output = this;

    // Shuffle //
    if (shuffle) {
        output = shuffle(this);
    }

    // Limit // !!!ERROR!!! //
    if (limit !== undefined) {
        output = output.slice(0, limit);
    }

    return output;
};

然后运行插件

var query = $(example).query({
    shuffle: true,
    limit: 5
});

我试图遵循所有最佳做法,但如果您发现任何奇怪的事情请告诉我。

这是一个包含所有代码的jsFiddle,你可以在控制台中看到错误。

  

http://jsfiddle.net/JamesKyle/CfXhw/

1 个答案:

答案 0 :(得分:4)

在限制前添加options.

options.limit

http://jsfiddle.net/JamesKyle/UWDsz/

您正在创建一个对象,因此为了访问它,您可以使用按句点object.variable分割的对象和变量名称

更正了jQuery代码:

$.fn.query = function(params) {

    // Parameters //
    var options = $.extend({
        'shuffle' : false,
          'limit' : undefined
    }, params),
        output = this;

    // Shuffle //
    if (options.shuffle) {
        output = shuffle(this);
    }

    // Limit // !!!ERROR!!! //
    if (options.limit !== undefined) {
        output = output.slice(0, options.limit);
    }

    return output;
};