如何向我的插件用户公开事件?
我知道我应该使用:
$('#myPluginDiv').trigger('eventName', ["foo", "bar"]);
触发事件,但我正在寻找描述如何在插件中声明和调用事件的最佳实践。
如何向我的插件用户公开事件?
我知道我应该使用:
$('#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 )在widget类上也有一个通用函数用于触发事件(用法:https: //github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js),但是您可以看到事件在源代码的中间硬编码,而不是顶部的常量就像在彩盒上一样。
我个人认为,并且在我自己的插件中这样做,如果您有很多要触发的事件,创建常量会更好,但如果您只触发 2 或 3 个事件,则没有必要。
辅助函数是必须的,并且应该是模板的一部分。
我使用和看到的事件名称都遵循标准的CamelCase ,例如beforeClose
.
一些人主张对诸如 Colorboxcbox_open
或什至的事件使用前缀click.myPlugin
(参见:http ://api.jquery.com/on/#event-names )
结论:尝试遵循一般编程的最佳实践和约定,并寻找更好的示例。
in plugin create object litereal like
var plugin = {
show:function(){
// code for show()
}
};