2010-04-29 53 views
1

編輯:貼頭碼 編輯2:澄清PHP現場後jQuery的失敗去住

我一直在設計用於使用JQuery周部位。我沒有本地服務器或測試服務器,所以我只是通過FTP創建了一個目錄'/ testing'。在測試目錄中一切都很好。

我試圖通過將'/ testing'中的所有文件移動到根目錄並且相應地更改所有文件路徑和腳本源來今晚啓用。該網站加載,但與JQuery相關的所有內容都不起作用。 JavaScript控制檯給出的(就像從一個插件的例子)錯誤:

「$ .os.name」不是一個函數

我在虧損適合做什麼。我更改了引用JQuery庫的路徑,安裝了新的JQuery副本(到一個新目錄)等等。

有一個wordpress安裝在不同的目錄'/ blog'中。我已經閱讀了有關WordPress的一些兼容性問題,但這似乎與在 wordpress中使用JQuery 有關,而我並不這樣做。

這裏是頭代碼:

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<link href="main.css" rel="stylesheet" type="text/css"> 
<link href="jquery.lightbox-0.5.css" rel="stylesheet" type="text/css"> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="jq.browser.js"></script> 
<script type="text/javascript" src="compatible.js"></script> 
<script type="text/javascript" src="nav.js"></script> 
<script type="text/javascript" src="jquery.lightbox-0.5.js"></script> 
<script type="text/javascript"> 
$(function() { 
$('a.lightbox').lightBox(); 
}); 
</script> 
<title>Pearce Images</title> 
<script type="text/javascript" src="slider.js"></script> 
<link href="slider.css" rel="stylesheet" type="text/css"> 
</head> 

值得一提的是所有的頁面都在PHP。我不是PHP開發人員,我只使用1個函數:require_once('some.file.php')。 (對不起,沒有代碼標記,但我不能處理這個降價的事情)。我只是用它來爲所有頁面的頁眉和頁腳提取相同的代碼,這樣如果需要進行更改,我只需更改一個代碼塊。

非常感謝您的幫助。

+0

我編輯了我的答案。看看'compatible.js'的功能會不錯。 – Strelok 2010-04-29 06:06:07

回答

0

首先嚐試從瀏覽器中下載jquery.js文件(或者其他名稱)。轉到查看源代碼。某些瀏覽器會自動突出顯示鏈接,以便您點擊它們。查看jquery.js文件是否在您訪問它時加載。如果沒有,你有一個服務器配置問題。

否則,請創建一個使用您的jQuery腳本的簡單HTML文件。如果它工作得很好,你將會隔離這個問題。

要測試的一件事是看看jQuery變量是否仍然可用。 $可能已被更改爲引用另一個JavaScript庫。如果是這樣的話,你不必用jQuerys替換所有的$;您可以通過包裝你這樣的jQuery的使用代碼使用其他插件讓你的代碼,代碼兼容:

(function($){ 
    /* Code using $ for jQuery. */ 
}(jQuery)); 
+0

我能夠下載的文件(如果你的意思是指我的瀏覽器地址到jquery文件) 我創建了一個簡單的HTML頁面,通過jquery簡單的警報,沒有運氣。 我必須在早上嘗試適應性問題,可能實際上很快就需要睡眠。 – 2010-04-29 05:47:02

0

要解決問題,嘗試在http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js指向<script>標籤的jQuery的谷歌AJAX庫源。如果這有效,那麼你只是搞亂你的src屬性。發佈您在頁面中的標題以及物理放置jQuery的位置。

編輯(查看代碼後):我不知道「compatible.js」是否覆蓋$函數聲明。嘗試用jQuery替換您使用$的所有實例。另外你的Javascript似乎不在<script>標籤。使你的代碼是這樣的:

<head> 
    <link href="main.css" rel="stylesheet" type="text/css"> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script type="text/javascript" src="compatible.js"></script> 
    <script type="text/javascript" src="jquery.lightbox-0.5.js"></script> 
    <script type="text/javascript"> 
     jQuery(document).ready(function() { jQuery('a.lightbox').lightBox(); }); 
    </script> 
    <title>Pearce Images</title> 
    <link href="slider.css" rel="stylesheet" type="text/css"> 
+0

不幸的是,試圖谷歌的來源,同樣的問題。我已經添加了所需的頭部代碼(對不起,如果它看起來很奇怪,我很難用降價...)。 – 2010-04-29 05:41:04

0

這可能是一個複製粘貼問題,但有「1.4.2」後,一個額外的空間:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2 /jquery.min.js"></script> 
+0

如果只是這樣簡單,只是一個副本和過去的恐懼。感謝您的好意。 – 2010-04-29 05:53:26

0

還要檢查,如果你再打電話給jQuery的從compatible.js ......這有時可能會導致此問題....

0

天哪我覺得自己像一個傻瓜:

<script type="text/javascript" src="jq.browser.js"></script> 

是一個插件來檢測瀏覽器類型和操作系統,這就是「compatible.js」文件使用的內容。我顯然昨晚沒有轉移那麼多次。不知道爲什麼它打破了jQuery的其餘功能,我認爲這將只是跳過兼容功能,這是compatible.js的內容:

var links = "a.links,a.trigger"; 
var folio = "a.portfolio"; 
// 
// 
$(document).ready(function() { 
if ($.os.name == "mac") 
{ 
$(links).css("fontSize","76.6%"); 
$(folio).css("fontSize","76.6%"); 
$(links).css("top","-4px"); 
$(folio).css("top","5px"); 
} 
}); 

一切都很好,感謝所有幫助傢伙!