0

我正在尝试构建一个相当基本的 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/

4

1 回答 1

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;
};
于 2012-08-31T20:11:45.173 回答