我確實看過this quesiton,雖然我可以研究如何實現這一點。從文檔準備就緒之外調用時沒有定義函數
基本的代碼覆蓋是:
jQuery.noConflict();
jQuery(document).ready(function($){
$("button").click(function(e){
popupOverlay();
popupDisplay();
e.preventDefault();
});
function popupOverlay() {
var overlayCss = {
"width" : $(document).width(),
"height" : $(document).height(),
"display" : 'block'
}
$("#popupOverlay").css(overlayCss);
}
function popupDisplay() {
var popup = $("#popup");
etc etc code to work out the central position for popup
$(popup).css({
'top': yPosition + 'px',
'left': xPosition + 'px',
'display' : 'block'
});
}
});
上面他們工作得很好,但我想,如果窗口是通過將低於上述這種調整重新調用上面的函數:
jQuery(window).resize(function() {
popupOverlay();
popupDisplay();
});
我得到的錯誤是:popupOverlay未定義
我試着將彈出函數移出文檔rea DY但後來我得到的錯誤:$不是一個函數
我必須非常小心使用這個代碼,它不會引起與被網站上已經使用的其他JavaScript庫任何衝突。
「我試着移動文檔的彈出函數,準備好了,然後我得到錯誤」 - 對不起,什麼?我認爲在那裏有幾個拼寫錯誤或拼寫錯誤的自動更正... –
爲什麼不移動jQuery(window).resize(function(){'在ready handler中呢? –
我還有一個新問題如果我關閉彈出窗口,然後調整窗口大小,彈出窗口重新打開。我嘗試添加一個if(「#popup:visible」)但這不起作用 –