我試圖定義一些默認行爲,我的jQuery的對話框如下所示:將默認函數添加到jQuery Dialog打開/關閉事件的最佳做法是什麼?
(function($) {
/**
* Overriding default options
**/
$.ui.dialog.defaults.bgiframe = true;
$.ui.dialog.defaults.open = function() {
if ($('.ui-widget-overlay').length == 0) return;
if ($.browser.msie) {
// scrollbar fix for IE
$('html').css('overflow-y','hidden');
$('html').css('overflow-x','hidden');
} else {
// disable scrollbar for other browsers
$('body').css('overflow','hidden');
}
};
$.ui.dialog.defaults.beforeclose = function(event, ui) {
if ($('.ui-widget-overlay').length == 0) return;
if ($.browser.msie) {
// scrollbar fix for IE
$('html').css('overflow-y','auto');
$('html').css('overflow-x','auto');
} else {
// disable scrollbar for other browsers
$('body').css('overflow','auto');
}
};
})(jQuery);
上述工作時,我有沒有創建對話框時,指定的自定義開啓/ beforeclose功能。所以我想知道將這些功能添加到所有對話框中的最佳做法是什麼,同時保留指定open/beforeclose函數的功能。
感謝您的回覆!我同意我需要更多地瞭解如何正確完成這項工作。然而,我似乎無法找到正確「擴展」所有未來創建的對話框的默認行爲/功能的方法。你給出的例子描述瞭如何在對話框「之後」應用這些設置,但是我想讓這些功能默認用於我網站上的所有對話框。你介意給我一些關於如何正確完成的指示嗎? – BlueFox 2010-04-08 10:48:07
抱歉,不得不提出2條評論。至於CSS,我不太清楚只有CSS才能做到這一點,因爲我只會在模態對話框中禁用滾動條。我絕對有興趣瞭解實現這一點的正確方法! – BlueFox 2010-04-08 10:49:29
只需將對話位置固定爲一個解決方案?然後,即使用戶滾動,它也會懸停在頁面上。 – 2010-04-08 20:41:40