我對編寫好的javascript不太瞭解,所以也許我以錯誤的方式思考這個問題,但這裏是情況。如何在jQuery ui對話框按鈕中單擊提供鉤子?
我有一個頁面,其中包含各種插件,每個插件都帶有編輯按鈕。
因此,有例如一個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的地方。
有沒有一種方法可以告訴保存按鈕在點擊「保存」按鈕之前運行正常代碼之前要做什麼?
如果有人需要更多的解釋,請讓我知道。
任何關於如何寫這個的幫助將不勝感激。
編輯:
看來我無法解釋我的問題,所以希望這個編輯將有助於使事情更清晰。
我想要的是執行一些代碼,它將在打開對話框的內容時被選擇性地定義。如果定義了這個代碼,應該在點擊保存按鈕之後但在執行實際點擊功能之前執行。這可能嗎?
你想在代碼執行之前做些什麼嗎?或者你想要一種方法來附加執行? – 2012-04-23 17:41:21
@EduardoCrimi謝謝您的評論。我想要執行一些代碼,在打開對話框的內容時可以選擇定義它們。如果定義了這個代碼,應該在點擊保存按鈕之後但在執行實際點擊功能之前執行。 – 2012-04-23 17:43:33