我想添加關閉時自動銷燬對話框的功能,而無需向當前項目中的每個對話框調用添加任何特殊代碼。所以我認爲它需要覆蓋默認對話框close
事件。jQuery UI事件功能擴展
我發現了一個辦法做到這一點(例如:How to extend a jquery ui widget ? (1.7)),但我不希望只是重寫事件:我還需要保存事件的以前的行爲,並在其後添加$(this).dialog("destroy")
電話。
有什麼建議嗎?
我想添加關閉時自動銷燬對話框的功能,而無需向當前項目中的每個對話框調用添加任何特殊代碼。所以我認爲它需要覆蓋默認對話框close
事件。jQuery UI事件功能擴展
我發現了一個辦法做到這一點(例如:How to extend a jquery ui widget ? (1.7)),但我不希望只是重寫事件:我還需要保存事件的以前的行爲,並在其後添加$(this).dialog("destroy")
電話。
有什麼建議嗎?
我不是100%肯定這是正確的,但我認爲,你可以放心地忽略這樣的關閉方法:
$.ui.dialog.prototype._originalClose = $.ui.dialog.prototype.close;
$.ui.dialog.prototype.close = function() {
alert ('My stuff');
$.ui.dialog.prototype._originalClose.apply(this, arguments);
};
你可以看到在這個工作:http://jsfiddle.net/8KKMm/
不過,避免覆蓋外部庫通常是一個好主意。可能有更好的方法來實現你的目標,而不會妨礙jQuery UI庫。請查看Dialog組件的可用事件:http://jqueryui.com/demos/dialog/。
您可以將dialogclose
處理程序添加到頁面的body
元素。
你可以找到一個樣本here。
有沒有必要重寫對話框類的關閉功能,你可以簡單地使用對話框類提供的事件。
例:
$("body").on("dialogclose", function(){
alert("closed");
});
您必須先保存一個破壞處理器,運行你自己的,然後保存一個。 你如何設法重寫這個處理程序? – kaz 2012-01-03 12:10:08