如何将事件暴露给插件用户?


我知道我应该使用:

$('#myPluginDiv').trigger('eventName', ["foo", "bar"]);

为了触发事件,但我正在寻找描述如何在插件中声明和调用事件的最佳实践。

有帮助吗?

解决方案

我认为您可以检查一些最常用的插件并做出自己的假设。我们没有关于此标准的标准,只有代码约定。

colorbox(来源: https://github.com/jackmoore/colorbox/blob/master/jquery.colorbox.js)定义事件名称的前缀和一些常数。它还具有用于触发和运行回调的函数。

jQuery UI(来源: https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.widget.js)在小部件类上也具有用于触发事件的通用函数(用法: https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js),但是您可以看到这些事件是在源中间进行的硬编码,而不是像Colorbox上的顶部常数。

我个人认为,并在我自己的插件中做到这一点,如果您有很多事件要触发,创建常数会更好,但是如果您只发射2或3个事件,则不必要。

辅助功能是必须的,应该是模板的一部分。

我使用的事件名称并围绕所有标准查看 骆驼香烟盒 例如 beforeClose.

一些主张使用前缀用于诸如Colorbox的事件 cbox_open 甚至 click.myPlugin (看: http://api.jquery.com/on/#event-names)

结论:尝试遵循最佳实践和惯例以进行编程,并关注那里更好的例子。

其他提示

在插件中创建对象的意思

var plugin = {
  show:function(){
// code for show()
}


};
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top