为了账号安全,请及时绑定邮箱和手机立即绑定

扩展jQuery插件的最佳方法

扩展jQuery插件的最佳方法

潇潇雨雨 2019-08-06 14:28:28
扩展jQuery插件的最佳方法我是一个相当新的jQuery用户,希望扩展现有的jQuery插件,它可以满足我所需要的75%。我试着做这个功课。我在stackoverflow上检查了以下问题:扩展jQuery插件扩展jQuery插件jQuery:扩展插件问题我已经阅读了 extend方法。然而,所有这些功课让我感到困惑。我正在使用fullcalendar插件,需要修改一些行为以及添加新的事件挂钩。我是否坚持在插件封闭本身中这样做?我错过了一些明显的东西吗理想情况下,我们可以将代码与插件代码分开,以便进行可能的升级。任何帮助将不胜感激,特别是关于我在哪里错过了关于其他Stack Overflow问题中已经提出的解决方案是否有意义的一些信息或意见的指示。对我来说,他们互相矛盾,我仍然感到困惑。
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

我在尝试扩展jquery UI插件时遇到了同样的问题,这是我找到的解决方案(通过jquery.ui.widget.js找到它):

(function($){/ **
 *命名空间:插件所在的命名空间
 * pluginName:插件的名称
 * /
    var extensionMethods = {
        / *
         *检索元素的id
         *这是现有插件中的一些上下文
         * /
        showId:function(){
            return this.element [0] .id;
        }
    };
    $ .extend(true,$ [Namespace] [pluginName] .prototype,extensionMethods);})(jQuery的);

希望这有帮助,请询问您是否有任何疑问。


查看完整回答
反对 回复 2019-08-06
?
holdtom

TA贡献1805条经验 获得超10个赞

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

我以前最后做的另一件事就是使用插件作为我的插件的属性,而不是试图扩展它。

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


查看完整回答
反对 回复 2019-08-06
  • 3 回答
  • 0 关注
  • 449 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信