创建插件,公开事件

时间:2010-11-11 10:08:01

标签: events jquery-plugins plugin-architecture

如何向插件用户公开事件?


我知道我应该使用:

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

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

2 个答案:

答案 0 :(得分:0)

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

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)在widget类上也有一个用于触发事件的常用函数(用法:https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js),但你可以看到事件是在中间的硬编码来源,而不是像Colorbox一样在顶部的常量。

我个人认为,并且在我自己的插件中执行它,如果要触发很多事件,创建常量要好得多,但如果你只触发2或3个事件则不需要它。

辅助函数是必须的,应该是模板的一部分。

我使用的事件名称和周围的事件名称都遵循标准 CamelCase ,例如beforeClose

有人提倡为Colorbox的cbox_open甚至click.myPlugin等事件使用前缀(请参阅:http://api.jquery.com/on/#event-names

结论:尽量遵循编程的最佳实践和惯例,并留意更好的例子。

答案 1 :(得分:-1)

在插件中创建对象文字,如

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


};