未分配关闭变量

时间:2013-06-30 05:34:10

标签: javascript closures

我有以下几点:

jQuery.fn.X = function(){
    var elements = jQuery(this);
    elements.click(function(){
        var self = jQuery(this);
        //elements here is not defined why?
    });

为什么在点击函数中没有定义elements,而它应该将它作为闭包变量?

1 个答案:

答案 0 :(得分:3)

这是创建jQuery插件的正确方法。

jQuery.fn.X = function () {
    // here, "this" will be a jQuery object containing all elements you matched
    // with X(). You must return that object.
    return this.click(function () {
        // here, "this" will be a DOM element. You don't have to return it.
        var self = jQuery(this);
        // ...
    });
});

您必须返回jQuery才能保持方法链接正常工作。