我无法访问jquery插件方法的调用者

时间:2015-04-15 08:41:51

标签: javascript jquery

我有一个像这样的jQuery插件:

(function(e) {
    e.fn.dmHall = function(args) {
        var st = {
            push: 30,
            rtl: false,
        };

        e.extend(st, args);
        var main = e(this);

        e.fn.dmHall.hideThis() = function(args){
            this.hide();
        }

        $('#myelement').click(function(e){
            $(this).dmHall.hideThis();
        });
    }
})(jQuery)

然而,这不起作用,我无法将$('#myelement')作为hideThis()方法的调用者而不将其设置为参数。

我想创建一个可以像hide()或其他任何方式一样工作的子方法。

1 个答案:

答案 0 :(得分:0)

此代码用于插件文件dmHallThisHide在jQuery插件列表中添加了新功能:

(function(e, window, document, undefined) {

    e.fn.dmHallThisHide = function (args) {
        var st = {
            push: 30,
            rtl: false,
        };

        e.extend(st, args);
        var main = e(this);

        this.each(function(index, value) {//this.each is required as selector may get element array
            e(this).hide();
        });

    }

})(jQuery, window, document);

要在代码之后调用此插件(它可以在单独的文件中):

$(document).ready(function() {

    $(<<SELECTOR>>).dmHallThisHide();
});

请查看jQuery插件boilerplage以获取更详细的jQuery插件版本,链接:https://github.com/jquery-boilerplate/jquery-boilerplate