-
08-10-2019 - |
题
如何将事件暴露给插件用户?
我知道我应该使用:
$('#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()
}
};
不隶属于 StackOverflow