4

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

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

有一个更好的方法吗?

4

1 回答 1

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);

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

于 2013-06-10T05:09:09.893 回答