jQuery工具的疊加層是一個很好的顯示div的webhelper。通常,我們建議在jquery ready函數中註冊疊加層。它在我身邊很好。當我嘗試多次註冊時,找不到jQuery工具「疊加」
現在我想立即註冊疊加層。我的意思是:
- 我創建了一個div,用於加載我的內容。
- 然後我使用新創建的div來註冊疊加層。
- 最後一件事是觸發事件。
下面是我的示例代碼:
<pre><code>
function RegisterOverlay(divId) {
$("#" + divId).overlay({
mask: {
color: '#789',
loadSpeed: 200,
opacity: 0.7
},
load: true,
onBeforeLoad: function() {
document.getElementById(divId).style.width = overlayConf.width;
document.getElementById(divId).style.height = overlayConf.height;
this.getConf().top = overlayConf.top;
this.getConf().oneInstance = true; //overlayConf.oneInstance;
this.getConf().closeOnClick = overlayConf.closeOnClick;
this.getConf().closeOnEsc = overlayConf.closeOnEsc;
this.getConf().top = overlayConf.top;
this.getConf().effect = overlayConf.effect;
this.getConf().fixed = overlayConf.fixed;
this.getConf().speed = overlayConf.speed;
this.getConf().mask.color = overlayConf.Mask.color;
this.getConf().mask.loadSpeed = overlayConf.Mask.loadSpeed;
this.getConf().mask.opacity = overlayConf.Mask.opacity;
this.getConf().mask.colseOnEsc = overlayConf.Mask.colseOnEsc;
this.getConf().mask.colseOnClick = overlayConf.Mask.colseOnClick;
var wrap = this.getOverlay().find(".contentWrap");
wrap.load(overlayConf.url);
},
onClose: function() {
var overlayAll = document.getElementById("overlayAll");
overlayAll.removeChild(document.getElementById(divId));
}
});
}
function ParentOverlay(conf, divId) {
overlayConf = conf;
CreateDiv(divId);//create a div based on a given id
RegisterOverlay(divId);//
}
上面的代碼託管父頁面上,讓每一個孩子頁面可以調用ParentOverlay功能與一些參數。對不起,我可憐的英語,子頁面託管在iframe中。該框架是否會導致以下問題?
我的問題:
有一個非常小的頁面,我有三個按鈕。點擊它們中的任何一個都會觸發具有不同段落的ParentOverlay。
成功加載頁面後,單擊第一個按鈕,按預期AOK一切完成,然後關閉疊加層,但之後嘗試再次單擊三個按鈕之一。錯誤來了:
對象不支持屬性或方法 '覆蓋'
這發生在我嘗試註冊覆蓋:
$( 「#」 + DIVID)。覆蓋(...
順便說一句,有沒有錯按鈕和這有沒有關係我點擊按鈕的順序。
很簡單:首先點擊確定。然後都吸。
我打了這個,我發現如果我只是硬編碼三個按鈕的三個div,並在jquery ready函數中註冊三個覆蓋。無論多少次點擊按鈕,都可以。但這是一個我無法理解的解決方案。我想在飛行中重新使用代碼。
我也嘗試將load屬性設置爲false。這是沒有道理的。
現在,我真的不知道該怎麼做,該怎麼辦。也許有一些特殊的設置,但我還不知道。
這裏有人可以跟我分享一些經驗給我一點線索。
任何幫助,非常感謝。
BTW overlayConf是一個全局變量是一個js對象,幷包含一些覆蓋值。我不認爲這與我的意志有關。 –