繁体   English   中英

jQuery扩展$ .fn与对象?

[英]jQuery extending $.fn with an object?

使用jQuery.extend和jQuery.fn.extend之间的区别吗? 有没有办法像$('.selector').Group.Method(); $('.selector').Group.Method2();

现在我在主脚本中有一个

function Forty() {};

var Forty = new Forty();

(function(site) {
    $.extend(Forty, {
        getBaseUrl: function(extra) {
            extra = typeof extra !== 'undefined' ? extra : '';
            return Forty.get('baseUrl') + extra;
        },
        get: function($what) {
            return site[$what];
        }
    });
})(site);

然后在该文件中,我有:

$.extend(Forty, {
    flyOut: function() {
        $(this).on('click', function() {
            $('html').toggleClass('nav-open');
        });
    }
});

最后,我有:

$.fn.extend({Forty: Forty});

就在我有这条线之前:

$('.selector').Forty.flyOut();

所以我真的很喜欢像$('.selector').Forty.flyOut();类的东西$('.selector').Forty.flyOut();

这样的事情可能吗?

我设法通过以下方式解决了这个问题:

var Forty = {fn:{}};

$.fn.extend({Forty: function() {return $.extend(this, Forty.fn);}});

然后分配我自己的函数,如下所示:

Forty.fn.flyOut = function() {
    $(this).on('click', function() {
        $('html').toggleClass('nav-open');
    });

    return this;
}

并像这样使用它们:

$('.js-toggle-nav').Forty().flyOut();

这似乎很有效!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM