2009-11-14 100 views
0

有一點使用使用Wordpress的jQuery插件(快魚,jQuery用戶界面等)的麻煩。一切工作正常在我的普通non-Wordpress網站,但Wordpress似乎與JQuery衝突。必須有一些方法來解決這個問題。使用jQuery插件與WordPress

另外,我使用的卡林頓框架,如果有差別。

在Safari的網絡督察,我得到這些錯誤:

ReferenceError: Can't find variable: jQuery 
ReferenceError: Can't find variable: $ 
+0

你是如何jQuery的,包括在自己的WordPress網頁?最安全的辦法可能是使用[wp_enqueue_script()](http://digwp.com/2009/06/including-jquery-in-wordpress-the-right-way/),這將載入(如有必要)的WordPress自身jQuery的副本。 另外,你是如何包含代碼給你的問題?它只是嵌入在頁面上,還是在單獨的文件中? – 2010-09-09 14:17:28

回答

2

的WordPress和jQuery不會互相沖突。 Wordpress在服務器上,jQuery位於客戶端,除了處理由Wordpress返回的HTML之外,兩者並沒有太大的關係。如果定義jQuery對象的JavaScript沒有被瀏覽器正確加載/解析,那麼你會得到那個錯誤。三種故障排除解決方案:

  1. 檢查並確保您的客戶端正在爲jQuery javascript文件發出請求。如果不是,那麼請求該文件的腳本標記可能不會正確包含在您的頁面中。
  2. 如果提出請求,以確保它的成功。如果響應是一個404碼或其他錯誤,解決什麼原因造成的(不良URL,不正確的權限,等。)
  3. 我注意到,使用jQuery的縮小的版本時,瀏覽器偶爾會引發錯誤時試圖解析代碼,導致您在嘗試稍後在代碼中使用jQuery函數時遇到的引用錯誤。如果您使用jQuery的縮小版本,請嘗試切換到未壓縮的版本並查看是否可以解決您的問題。
+0

不一定是正確的。 jQuery包含在WordPress管理頁面中。另外,一些主題可能會包含像Prototype這樣會衝突的JS庫。 – ceejayoz 2009-11-14 04:10:59

+0

像所有的插件和我寫的代碼一樣,jQuery加載正常。將盡量不使用jQuery UI的縮小版本。 – Tim 2009-11-14 04:29:44

+0

你說一切都很好......你什麼時候得到錯誤呢?如果瀏覽器試圖執行'$(window).load()'函數,你會得到錯誤。我的猜測是這是第三件事,並且有一些關於Safari不喜歡的縮小版jQuery。 – 2009-11-14 04:48:57

1

只要把所有的JS下

<?php 
    wp_head(); 
?> 

部分。如果您在單個文件中遇到任何問題,請將所有行全部刪除:

var $j = jQuery.noConflict(); 

到頂部。

+0

如果'jQuery.noConflict()'改變了任何東西,這意味着你在DOM中有一些其他的對象試圖使用'$'這個名字。你在頁面上使用另一個JavaScript框架嗎? – 2009-11-14 04:51:32