2011-06-03 78 views
-3

我需要从另一个插件扩展,谁是最好的方式?如何从另一个覆盖方法扩展jquery插件?

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

我有一个插件,它工作得很好,现在...我需要从扩展另一个插件酒吧

我写了下面的代码,但不工作:

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

现在,应该如何写一个插件扩展?

感谢

+1

你需要更好地解释你的问题 – jcvandan 2011-06-03 16:07:56

回答

0

可能看到jQuery Hook扩展?

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

编辑

也可参阅功能挂钩的本质this post

+0

亲爱的布拉德,不......我不需要一个钩子,我需要从另一个插件扩展插件。 – yecid 2011-06-03 16:03:10

+0

我有一个工作得很好的foo插件,现在...我需要从foo扩展另一个插件栏。 我写下面的代码,但不是工作: [代码] (函数($){ VAR方法= { 'onErrors':功能(邻,otherErrors){ } } $ .extend(真,$ [foo] [bar] .prototype,extensionMethods); })(jQuery); [code] 现在,应该怎么写一个插件扩展? – yecid 2011-06-03 16:07:23

+0

@Yecid:全部取决于访问级别/暴露的方法。如果你编写插件,我会建议让它们更模块化,以便扩展它们是可行的(就像jQuery用'.extend'功能做的那样) – 2011-06-03 16:23:31

1

从您包含的示例代码中,我的猜测是您正试图实现this answer中显示的内容。

如果是这样的话,那么这里有两个问题。

首先,您将方法列表声明为methods,但尝试将其用作extensionMethods。其次,更重要的是,你似乎误解了这个例子(或者我错误理解了你的要求?)。 $.extend()将不允许您创建新的插件bar from foo。但是,您可以使用其他方法扩展foo。像这样:

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