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

标签 javascript jquery events triggers

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

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

有更好的方法吗?

最佳答案

我不认为它本身是一种“不好的做法”,但是我会使用插件本身来提供这个功能。例如

$("#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);

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

关于javascript - 在 javascript 中,将自定义事件附加到文档本身是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989565/

相关文章:

javascript - 为什么在 Node.js 上使用 superagent 尝试登录 reddit 失败?

jquery - 为什么我不能在不同的页面上调用同一个 Google map ? jQuery 移动

javascript - 将 ES6 插件扩展到 jQuery 原型(prototype)

javascript - 如果没有带有类的子元素,则给出父类

c# - 为什么C#不像VB那样有Handles子句?

javascript - 为什么我的助手集合查询没有反射(reflect)在 html 模板中?

javascript - 如何在不影响其他元素的情况下在相同纬度/经度的谷歌地图 v3 中添加标记集群?

javascript - meteor :应用程序崩溃

javascript - firefox 在构建页面时生成白色 "flash"

jquery - 仅当多个文本输入发生更改时才尝试触发更改事件