2011-10-24 40 views
0

在母版頁,我有以下代碼:的document.ready jQuery的難度

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>@ViewBag.Title</title> 
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 
    <link href="@Url.Content("http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.css")" rel="stylesheet" type="text/css" /> 
    <script src="@Url.Content("http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.js")" type="text/javascript"></script> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
</head> 
<body> 
    @RenderBody() 
</body> 
</html> 

然後在Index.cshtml我有以下代碼:

@{ 
    ViewBag.Title = "Index"; 
} 
<h2> 
    Index</h2> 
<div data-role="page"> 
    <div data-role="header"> 
     ...</div> 
    <div data-role="content"> 
     <a id="btnShowCustomers" data-role="button" href="#secondDiv"></a> 
    </div> 
    <div data-role="footer"> 
     ...</div> 
</div> 
<div id="secondDiv" data-role="page"> 
    <div data-role="content"> 
    </div> 
</div> 
<script type="text/javascript"> 
    (document).ready(function (event) { 
     $('#btnShowCustomers').bind('click', function (event) { 
      GetCustomers(); 
     }); 
    }); 

    function GetCustomers() { 
     var webMethod = "Home/GetCustomers"; 
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: webMethod, 
      data: "{}", 
      dataType: "json", 
      success: function (dataObj) { 
       alert('lala'); 
      } 
     }); 
    } 
</script> 

調試使用Firebug我得到的以下錯誤:

document.ready不是函數 [Break On This Error](document).ready(function(event){

這怎麼可能?在文檔準備就緒後,我想註冊按鈕的單擊事件的處理程序。有什麼建議嗎?

+0

將其替換爲'$(document).ready(...') - 您忘記在其中放置'$'變量。 – Lapple

+0

對於jQuery包含,爲什麼你使用剃鬚刀nuget?因爲它是外部資源,所以應該替換''by腳本src =」http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.min.js「type =」text/javascript「>' –

+0

你也可以使用'$(function(){'而不是'$(document).ready(function(){') – jgauffin

回答

3
(document).ready(function (event) { 

應該

$(document).ready(function (event) { 
1

應該$(document).ready(function (event) ...

通知前綴字符串的開始,美元符號 - 雖然這可以不同,jQuery代碼通常使用此前綴來訪問它的上下文選擇和諸如此類的東西。

有關使用jQuery的一些信息,請參閱this page

1

你AR缺少$

$(document).ready(function (event) { 
1
(document).ready(function (event) { 

你不(document)之前有$jQuery,這個它認爲它是直接調用readydocument對象上。 ready是一個jQuery捷徑,不是DOM方法。

0

如果包括JQuery這樣的:

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.1.min.js" type="text/javascript"></script> 

那麼這應該工作:

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 
0

作爲一種快捷方式,你也可以寫

$(function(){ 
    //your code 
}); 

這相當於寫

$(document).ready(function(){ 
    //your code 
});