如何向插件用户公开事件?
我知道我应该使用:
$('#myPluginDiv').trigger('eventName', ["foo", "bar"]);
触发事件,但我正在寻找描述如何在插件中声明和调用事件的最佳实践。
答案 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()
}
};