2012-09-22 188 views
4

有誰知道爲什麼jQuery文檔準備好可能不會在網站上觸發?我把正是這個腳本在頁腳和它根本不火(包括jQuery的1.8頭部分):jQuery(document).ready()不會觸發

<script type="text/javascript"> 
jQuery(document).ready(function() { 
    alert('test'); 
    jQuery("#slideshow iframe").each(function(){ 
      alert('test'); 
    }); 
}); 
</script> 

沒有Javascript錯誤,控制檯是空的,當我在Firebug的控制檯運行此它的工作原理:

jQuery("#slideshow iframe").each(function(){ 
    alert('test'); 
}); 
+0

甚至不是第一個'警報(「測試」);'火災? –

+0

是的,甚至不是第一個......我對這個沒有解釋。 – Atadj

+1

你在調用'jQuery(document).ready(function(){});'**之前的其他地方**嗎? – Giona

回答

3

你正在讓你的頁面上此錯誤

Uncaught TypeError: Property '$' of object [object Window] is not a function 

此錯誤的原因是你flow.anything-slider-1.0.js內部的線11

該文件使用jQuery(document).ready(),因此$未定義。

使用$jQuery工程變更線11

// doesn't work 
$("#content").before("<div id=\"cycledump\"></div>"); 

// Does work 
jQuery("#content").before("<div id=\"cycledump\"></div>"); 

整個文件使用jQuery的,而不是$因此該文件或許應該使用jQuery,而不是混合起來的一種方式堅持下去。

編輯
我只是雙重檢查的.ready()文檔和它似乎涉及到的問題,下面一段很有意思:

Aliasing the jQuery Namespace
When using another JavaScript library, we may wish to call $.noConflict() to avoid namespace difficulties. When this function is called, the $ shortcut is no longer available, forcing us to write jQuery each time we would normally write $ .

However, the handler passed to the .ready() method can take an argument, which is passed to the global jQuery object. This means we can rename the object within the context of our .ready() handler without affecting other code:

jQuery(document).ready(function($) { 
    // Code using $ as usual goes here. 
}); 

這將意味着,這不是固定線的11你可以也改變你的拳頭線jQuery(document).ready(function($) {,通過$作爲論點。這可能允許您在整個文件以及jQuery中使用$

無論如何,不​​確定是否通過$作爲一個參數將在你的情況下工作,我只是認爲我提到它的情況下,它的工作。

+0

修正:)謝謝!我沒有注意到,因爲Firebug沒有顯示錯誤......只有Chrome開發人員工具顯示它。 – Atadj

+0

@Paul:這就是我正在使用的,它有助於指出問題的好處。 – Nope

1

它可能是jQuery庫路徑問題。嘗試從jquery.com加載它 -

<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script> 

<script type="text/javascript"> 

$(document).ready(function() { 
    alert('test'); 
}); 

</script> 

複製此代碼,並在head部分粘貼

編輯:

您正在使用jQuery 1.4.21.8 jQuery UI

嘗試移動script taghead部分,它應該工作

4

雖然這是不是在這個特定實例的情況下,在此可以發生一個非常惱人的方式是jQuery bug 10251:在$(document).ready()回調錯誤會阻止之後註冊的所有回調運行。 (在這種情況下會出現一個JavaScript錯誤,它可能看起來完全無關,雖然)。

相關問題