document.ready JQuery трудности - PullRequest
       2

document.ready JQuery трудности

0 голосов
/ 24 октября 2011

На главной странице у меня есть следующий код:

<!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 ]

3 голосов
/ 24 октября 2011
(document).ready(function (event) {

должно быть

$(document).ready(function (event) {
1 голос
/ 24 октября 2011
(document).ready(function (event) {

У вас нет $ или jQuery до (document), он думает, что вызывает ready непосредственно для объекта document. ready - это сокращение jQuery, а не метод DOM.

1 голос
/ 24 октября 2011

вам не хватает $

 $(document).ready(function (event) {
1 голос
/ 24 октября 2011

Должно быть $(document).ready(function (event) ...

Обратите внимание на знак доллара, начинающийся с начала строки - хотя этот может отличаться, код jQuery обычно использует этот префикс для доступа к своему контексту для селекторов иwhatnot.

См. на этой странице для получения некоторой информации об использовании jQuery.

0 голосов
/ 24 октября 2011

В качестве ярлыка вы также можете написать

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

, что эквивалентно написанию

$(document).ready(function(){
  //your code
});
0 голосов
/ 24 октября 2011

, если вы включите 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.
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...