9

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


我知道我应该使用:

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

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

4

2 回答 2

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),但是您可以看到事件在源代码的中间硬编码,而不是顶部的常量就像在彩盒上一样。

我个人认为,并且在我自己的插件中这样做,如果您有很多要触发的事件,创建常量会更好,但如果您只触发 2 或 3 个事件,则没有必要。

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

我使用和看到的事件名称都遵循标准的CamelCase ,例如beforeClose.

一些人主张对诸如 Colorboxcbox_open或什至的事件使用前缀click.myPlugin(参见:http ://api.jquery.com/on/#event-names )

结论:尝试遵循一般编程的最佳实践和约定,并寻找更好的示例。

于 2012-06-11T03:39:32.637 回答
-1

in plugin create object litereal like

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


};
于 2012-03-16T14:09:55.197 回答