首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >扩展jQuery插件的最佳方法

扩展jQuery插件的最佳方法
EN

Stack Overflow用户
提问于 2010-01-13 01:34:51
回答 6查看 63.1K关注 0票数 77

我是一个相当新的jQuery用户,希望扩展一个现有的jQuery插件,它可以满足我75%的需求。我已经试着在这方面做功课了。我在stackoverflow上查看了以下问题:

我已经在read up方法上扩展了。然而,所有这些作业都让我感到困惑。我正在使用fullcalendar插件,需要修改一些行为以及添加新的事件挂钩。我是不是坚持在插件闭包本身做这件事?我是不是漏掉了什么明显的东西?

理想情况下,我们可以将我们的代码从插件代码中分离出来,以便进行可能的升级。任何帮助都是非常感谢的,特别是关于我在哪里缺少一些信息或意见的地方,关于其他堆栈溢出问题中已经提出的解决方案是否有意义。对我来说,它们相互矛盾,我仍然感到困惑。

EN

回答 6

Stack Overflow用户

发布于 2012-11-08 07:18:47

我也有同样的问题,然后来到这里,然后Jared Scott的回答启发了我。

代码语言:javascript
复制
(function($) {

    var fullCalendarOrg = $.fn.fullCalendar;

    $.fn.fullCalendar = function(options) {
        if(typeof options === "object") {
            options = $.extend(true, options, {
                // locale
                isRTL: false,
                firstDay: 1,
                // some more options
            });
        }

        var args = Array.prototype.slice.call(arguments,0);
        return fullCalendarOrg.apply(this, args);
    }

})(jQuery);
票数 17
EN

Stack Overflow用户

发布于 2010-01-13 01:58:10

代码语言:javascript
复制
$.fn.APluginName=function(param1,param2)
{
  return this.each(function()
    {
      //access element like 
      // var elm=$(this);
    });
}

// sample plugin
$.fn.DoubleWidth=function()
  {
    return this.each(function()
      {
        var _doublWidth=$(this).width() * 2;
        $(this).width(_doubleWidth);
      });
  }

//

代码语言:javascript
复制
<div style="width:200px" id='div!'>some text</div>

//使用自定义插件

代码语言:javascript
复制
$('#div1').DoubleWidth();

/上述写入类型的util通常适用于dom元素/自定义util

代码语言:javascript
复制
(function($){
  var _someLocalVar;
  $.Afunction=function(param1,param2) {
    // do something
  }
})(jquery);

//访问上面的util作为

代码语言:javascript
复制
$.Afunction();

//这种类型的工具通常扩展javascript

票数 3
EN

Stack Overflow用户

发布于 2010-01-13 02:16:41

我发现很多插件的方法都是受保护的/私有的(即在闭包作用域中)。如果你需要修改方法/函数的功能,那么除非你愿意分叉,否则你就不走运了。现在,如果您不需要更改这些方法/函数中的任何一个,那么可以使用$.extend($.fn.pluginName, {/*your methods/properties*/};

我之前做的另一件事是简单地使用插件作为我的插件的属性,而不是试图扩展它。

这一切真正归结为你想要扩展的插件是如何编码的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2050985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档