在javascript中,将自定义事件附加到文档本身是不好的做法吗?

时间:2013-06-07 17:13:30

标签: javascript jquery events triggers

我有许多包含非常小的表单(最多2个字段)的引导模式。因为它们在他们的工作中非常相似,所以他们都使用我编写的jQuery插件来保存它们包含的表单(插件在保存之前做其他事情,但那是无关紧要的)。

这些模态在多个地方“嵌入”。我希望有一种简单的方法可以从代码的其他部分确定是否发生了保存。因为保存是从有兴趣知道它何时发生的代码中抽象出来的,所以我想改变保存插件来触发绑定到文档的自定义事件,然后编写像document.on这样的事件处理程序('my-event-here' ......每当我有兴趣知道是否发生了储蓄。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我不认为这本身就是一种“坏习惯”,但我会使用插件本身来提供此功能。例如

$("#selector").customPlugin( customOptions );  // initialize the plugin


$.customPlugin.on("save", function(evt, data) {
    // event called on save, where data contains anything relevant
});
//$.customPlugin.off("save", ...);

我会在插件中使用自定义元素来实际的事件管理器:

var customElement = $("<div>");

// adding/removing a (new) callback
customElement.on("save", saveCallback);
customElement.off("save", saveCallback);

// triggering an event
customElement.trigger("save", data);

更好的做法是在插件中封装插件所需的任何内容,而不是创建不必要的依赖;一切都应该围绕你的插件发展。