Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery插件体系结构_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript jquery插件体系结构

Javascript jquery插件体系结构,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,您好,我正在创建一个带有一些重Javascript功能的应用程序,我对如何构建它有疑问 我有一个Jquery插件a,它与插件B进行通信。插件B中有一些函数,当插件a中发生事件时可以调用这些函数。这是一个基本设置 但如果用户愿意,他们可以使用插件C而不是插件B,并覆盖插件B的默认行为。但不能更改插件A中的函数名或任何默认调用插件B的内容 有什么方法可以让我轻松做到这一点吗?我应该遵循什么样的架构。 我希望在插件B初始化时引发一个事件,然后我可以通过插件C中的函数重写它 任何帮助都将不胜感激 编辑

您好,我正在创建一个带有一些重Javascript功能的应用程序,我对如何构建它有疑问

我有一个Jquery插件a,它与插件B进行通信。插件B中有一些函数,当插件a中发生事件时可以调用这些函数。这是一个基本设置

但如果用户愿意,他们可以使用插件C而不是插件B,并覆盖插件B的默认行为。但不能更改插件A中的函数名或任何默认调用插件B的内容

有什么方法可以让我轻松做到这一点吗?我应该遵循什么样的架构。 我希望在插件B初始化时引发一个事件,然后我可以通过插件C中的函数重写它

任何帮助都将不胜感激

编辑

考虑下面的例子

我已经订阅了一个活动

  A.subscribe(Event, function(topic, data) {
            $.defaultfunction(Event, data, Value);
          });
默认情况下,它调用插件B中的函数。插件B具有default函数

现在我需要一种方法,用另一个插件C中的另一个函数覆盖插件B中defaultfunction中的默认行为


我希望我的问题是清楚的。

不要让插件A调用插件B,而是让插件A触发插件B和C都在监听的事件。这允许插件A向正在使用的B或C中的任何一个广播它的事件。

让插件A调用插件B,而不是让插件A触发插件B和C都在侦听的事件。这允许插件A向正在使用的B或C中的任何一个广播它的事件。

您应该更具体一些。欢迎使用一些代码示例。我添加了一些代码。让我知道它是否清楚你应该更具体。欢迎使用一些代码示例。我添加了一些代码。让我知道,如果它是明确的问题是插件B将始终监听插件A事件。插件A和插件B类似于无法修改的默认插件。我想创建另一个插件C,它是可选的,但是当它出现时会覆盖插件B。如果你不能修改插件B,插件C如何覆盖它?我不认为这是一个什么问题。我正在创建这两个插件,但这两个插件都将被部署并授予无法修改插件A或插件B的外部用户访问权限。我需要以这样一种方式进行设计,即插件B的行为可以被另一个自定义插件权限覆盖。因此,创建插件A的方式不依赖于插件B。插件B应该对触发事件的插件A做出反应。然后,如果有人想使用插件C,他们只需包含插件C并让它对插件A的事件做出反应。我来摆弄一把小提琴,举个例子。在这种情况下,pluginB和pluginC只是共存。如果开发人员想要覆盖它,他要么不包括pluginB,要么用
$.fn.pluginB=function()覆盖它{returnthis;}问题是插件B将始终侦听插件A事件。插件A和插件B类似于无法修改的默认插件。我想创建另一个插件C,它是可选的,但是当它出现时会覆盖插件B。如果你不能修改插件B,插件C如何覆盖它?我不认为这是一个什么问题。我正在创建这两个插件,但这两个插件都将被部署并授予无法修改插件A或插件B的外部用户访问权限。我需要以这样一种方式进行设计,即插件B的行为可以被另一个自定义插件权限覆盖。因此,创建插件A的方式不依赖于插件B。插件B应该对触发事件的插件A做出反应。然后,如果有人想使用插件C,他们只需包含插件C并让它对插件A的事件做出反应。我来摆弄一把小提琴,举个例子。在这种情况下,pluginB和pluginC只是共存。如果开发人员想要覆盖它,他要么不包括pluginB,要么用
$.fn.pluginB=function()覆盖它{returnthis;}