如何从另一个扩展jquery插件来覆盖方法?

时间:2011-06-03 15:43:57

标签: jquery plugins extends

我需要从另一个插件扩展插件,这是最好的方式吗?

扩展名将覆盖方法并添加任何设置。

我有一个 foo 插件,效果很好,现在......我需要从 foo 扩展另一个插件 bar

我编写以下代码,但不起作用:

(function($) {
  var methods = {
    'onErrors': function (o, otherErrors) {
    }
  }
  $.extend(true, $[foo][bar].prototype, extensionMethods);
})(jQuery);

现在,应该如何编写插件扩展名?

由于

2 个答案:

答案 0 :(得分:1)

根据您提供的示例代码,我猜您正在尝试实现this answer中显示的内容。

如果是这种情况,那么这里有两个问题。

首先,您将方法列表声明为methods,然后尝试将其用作extensionMethods

其次,更重要的是,你似乎误解了这个例子(或者我误解了你的要求?)。 $.extend()不允许您从 foo 创建新插件 bar 。但是,您可以使用其他方法扩展 foo 。像这样:

(function($) {
   var extensionMethods = {
      // ....
   }
   $.extend($.fn.foo, extensionMethods);
})(jQuery);

答案 1 :(得分:0)

可能会查看jQuery Hook扩展名吗?

虽然我不是100%肯定你想做什么。一些示例代码会很棒(或者更好地解释您要完成的任务)。

修改

另见this post关于函数挂钩的本质。