我对编写好的 javascript 知之甚少,所以也许我以错误的方式思考这个问题,但情况就是这样。
我有一个包含各种插件的页面,每个插件都有一个编辑按钮。
例如,有一个 HTML 插件、一个 Twitter 插件等。
单击编辑按钮后,将通过所有编辑按钮调用的通用函数显示 jQuery UI 对话框。对话框的内容由特定插件的更新表单填充。
此常用功能创建的对话框还自动提供“保存”和“取消”按钮。
由于这两个“保存”和“取消”按钮都是由对话框创建的,因此它们都被分配给“单击”选项的闭包。
如果可能的话,我想做的是提供某种钩子函数,可以在单击“保存”按钮时运行,它可以由每个插件更新表单中的 javascript 定义。
我想我已经解释得够多了,所以这里有一些示例代码:
这将告诉每个编辑按钮创建一个对话框并用适当的内容填充它。
// This function is called by each edit button
// on a click event which passes the required ids
function update_form_dialog(plugin_id) {
$.post(
'/get_plugin_update_form',
{
'plugin_id': plugin_id
},
function(response) {
var dialog = $('<div class="update_form"></div>').appendTo('body');
dialog.dialog({
open: function() {
dialog.html(response);
},
show: 'fade',
modal: true,
title: 'Update plugin',
width: 'auto',
height: 'auto',
buttons: [
{
text: 'Save',
click: function() {
// Call a hook defined in the plugin update
// form then send update data
}
},
{
text: 'Cancel',
click: function() {
// Close the dialog here
}
}
]
});
}
);
}
正如您在上面的代码中看到的那样,我所拥有的非常简单,但我不知道如何在“保存”按钮的单击功能的开头添加一个挂钩。
每个插件的更新表单都存储在response
变量中,这是编写插件更新表单的 javascript 的地方。
有没有一种方法可以告诉保存按钮在单击“保存”按钮时运行其正常代码之前要做什么?
如果有人需要更多解释,请告诉我。
任何关于我如何写这篇文章的帮助将不胜感激。
编辑:
看来我在解释我的问题时遇到了麻烦,所以希望这个编辑能让事情变得更清楚。
我想要的是执行一些代码,这些代码可以在打开对话框时在对话框的内容中定义。此代码(如果已定义)应在单击保存按钮后但在执行实际单击功能之前执行。这可能吗?