2013-04-05 68 views
2

我將在網頁圖標使用jQuery UI的位置插件這個現有的功能:

<script type='text/javascript'> 
jQuery(document).ready(function($) { 
var element_selector='.test'; 
if ($(element_selector).length !== 0) { 

//jQuery UI Position code here 

} 

}); 
</script> 

該功能位於HTML的頁腳部分附近,儘管它在某些位置輸出到了頭部部分。有人建議我在$(window).load()函數內加載這個jQuery。原因是$(document).ready事件是在加載DOM時觸發的,所以當文檔結構準備就緒時,但在加載圖像之前它會被觸發。

$(window).load()事件在加載完整內容後觸發。所以.position()方法可能無法計算正確的位置,當它被提前觸發(在圖像加載之前)。

如果這是真的,如何修改$(window).load()中的上述負載。謝謝。

更新:我已經從:更改

jQuery(document).ready(function($) { 

要這樣:

jQuery(window).load(function($) { 

而且我得到這個錯誤在控制檯:

Uncaught TypeError: object is not a function 

它無法在這個line:

$(divname515e62e8355b0).children().wrapAll('<div class="mydoc cf">'); 

其中divname515e62e8355b0是選擇在此處定義:

var divname515e62e8355b0 = '#test_selector'; 
+0

代碼中的'if'行有一個錯誤:它應該在大括號之前有一個近括號。 – alirobe 2013-04-05 05:34:04

+0

謝謝我編輯了它.. – 2013-04-05 05:39:02

+0

另外,我期望你的第二個問題的答案是,傳遞給'$'參數的參數可能不是jQuery。很可能它實際上是一個事件對象。我只是刪除了'$'參數 - 它可能是多餘的... – alirobe 2013-04-05 14:18:32

回答

2
jQuery(window).load(function($) { 
    var element_selector='.test'; 
    if ($(element_selector).length !== 0) { 
     // Do stuff 
    } 
}); 
+1

謝謝,但我在控制檯中得到一個錯誤:Uncaught TypeError:對象不是一個函數,看到我上面更新的問題.. – 2013-04-05 05:39:37

+0

remove dollar from第一行,應該沒問題 – 2013-12-11 13:26:55

0

我相信這是可能的jQuery的文件準備功能,有時會火圖像是完全準備好之前也是如此。我發現在開發視差網站時就是這種情況。使用普通的JavaScript,重視window.onload事件這樣

<script type='text/javascript'> 
window.onload = function(){ 
    var element_selector='.test'; 
    if ($(element_selector).length !== 0 { 

    //jQuery UI Position code here 

    } 
}; 
</script> 
-1

的JQuery的window.onload函數是這樣使用。

<script type="text/javascript"> 
window.onload = function() { 

var element_selector='.test'; 
if ($(element_selector).length !== 0 { 

//jQuery UI Position code here 

} 
} 
</script> 
+0

不能 - window.load不是jQuery方法。此外,使用window.anyEvent或document.anyEvent通常被認爲是不好的做法 - 您應該使用addEventListener(web標準)和attachEvent(ie8和更低),以確保您不會覆蓋現有的事件處理程序。 – alirobe 2013-04-05 05:37:30

相關問題