2013-01-02 146 views
0

我正在將一些代碼部署到網站,而當我這樣做時,JavaScript無法運行。我得到的錯誤:JavaScript在本地工作,但部署到網絡服務器時不工作

SCRIPT5007: The value of the property '$' is null or undefined, not a Function object.

它使用的代碼是

@model MVCMasterDetail.DataAccess.cwwoLoadCurrentWorkOrderActualsResult[] 

<script type="text/javascript"> 
    $(document).ready(function() { 
    $(".grid-toggle").click(function() { 
     $(this).closest("table").find("tbody").show(); 
    }); 
    $(".hide-rows").click(function() { 
     $(this).closest("table").find("tbody").hide(); 
    }); 
}); 
</script> 

@Html.Partial("MasterDetailMasterPartial") 

而且什麼叫使用它是:

<td colspan="4"> Details<br/><a href="javascript: void(0)" class="grid-toggle">Show-  </a><a href="javascript: void(0)" class="hide-rows">Hide</a></td> 

任何幫助表示讚賞。

+0

我想你已經忘了添加要領... – rene

+0

聽起來像你沒有正確包括jQuery。 –

+0

使用螢火蟲仔細檢查您的請求,也許您沒有加載jQuery庫 – fcalderan

回答

1

您需要的任何其他腳本之前,包括jQuery的添加引用到的jQuery庫。這聽起來像您有類似

<script type="text/javascript" src="customScriptThatUsesjQuery.js"></script> 
<script type="text/javascript" src="jquery-x.y.z.min.js"></script> 

,而不是

<script type="text/javascript" src="jquery-x.y.z.min.js"></script> 
<script type="text/javascript" src="customScriptThatUsesjQuery.js"></script> 

檢查,它會出現在你的HTML源代碼中使用的任何其他腳本之前。

+0

我已將其更改爲: < script type =「text/javascript」src =「../../ Scripts/jquery-1.7.1.js」> 仍然有相同的錯誤。這是在頭上 –

+0

啊,我明白了。確保'../../ Scripts/jquery-1.7.1.js'是您的網絡服務器上的有效路徑。您可以使用Firefox的Firebug或Chrome的開發工具來檢查頁面資源是否正確加載。 –

+0

這樣做,我只是將源代碼更改爲Web服務器上的特定文件。謝謝! –

0

你必須在<head>

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

或最後 - http://developer.yahoo.com/blogs/ydn/posts/2007/07/high_performanc_5/ – StingyJack

+0

它已包含在_Layout.cshtml中 –

2

根據您在Ashley Ross的回答中的評論,它看起來像您嘗試使用相對路徑添加jQuery。它也看起來像你使用MVC。在MVC中,要引用文件的HTML格式的方法是:

<script src="@Url.Content("~/Scripts/jquery-1.7.1.js")"></script> 

另外,如果你的腳本標籤雲頭標記與否並不重要。它唯一的區別是加載。通過將它放在head標籤中,您告訴瀏覽器在開始加載body之前下載js文件,這可能很不錯,但也會增加頁面加載時間。爲了更快的頁面下載,您實際上希望將腳本標籤放在body標籤的底部,這會推遲下載js文件,直到頁面的其餘部分加載完畢。這會導致更快的頁面加載時間,但如果您不期待它會導致一些奇怪的行爲。

相關問題