2014-06-13 166 views
0

我有一個包含消息和各種輸入對話框的應用程序。擴展JQueryUI對話框

主應用程序捕獲了許多按鍵,包括字母字符,並且我需要在任何對話框打開時禁用這些事件。

目前我有一個函數可以保存我在每個對話框打開的事件中調用的鍵盤事件,還有一個函數可以恢復我在每個對話框的關閉事件中調用的鍵盤事件。

它工作正常,但它意味着很多重複,我還必須記住添加這些功能的任何新的對話框。

在我看來,可能有一些方法掛鉤到一般的對話框代碼中,以便我可以自動爲我使用的每個對話框調用我的函數。

我還沒有真正在JQuery中擴展任何東西,所以我不太確定從哪裏開始。

有什麼建議嗎?

謝謝

+1

你可以發佈小提琴嗎? –

回答

0

好吧,所以我想通了。真的很容易,但我會在這裏發帖以防別人幫忙。

基本上,你只是從對話框小部件繼承,然後重寫方法(記住要調用原始的)。這是一個簡單的版本,它只是在打開和關閉時記錄控制檯消息。

$.widget("custom.cDialog", $.ui.dialog, { 
    open: function() { 
     console.log("open"); 
     return this._super(); 
    }, 
    close: function() { 
     console.log("close"); 
     return this._super(); 
    } 
}); 

希望能幫助別人。