document.ready jquery难度

时间:2011-10-24 11:49:22

标签: javascript jquery asp.net asp.net-mvc-3 jquery-mobile

在母版页中,我有以下代码:

<!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不是一个功能 [打破此错误](文件).ready(功能(事件){

怎么可能?在文档准备好之后,我想注册按钮点击事件的处理程序..有什么建议吗?

6 个答案:

答案 0 :(得分:3)

(document).ready(function (event) {

应该是

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

答案 1 :(得分:1)

应为$(document).ready(function (event) ...

请注意前缀为字符串开头的美元符号 - 尽管此可以不同,但jQuery代码通常使用此前缀来访问其选择器的上下文等等。

有关使用jQuery的一些信息,请参阅this page

答案 2 :(得分:1)

你错过了$

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

答案 3 :(得分:1)

(document).ready(function (event) {

$之前您没有jQuery(document),它认为它直接在ready对象上调用documentready是一个jQuery快捷方式,而不是DOM方法。

答案 4 :(得分: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.
});

答案 5 :(得分:0)

作为捷径,你也可以写

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

相当于写作

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