ASP.Net Ajax инструментарий клиентского кода и вопросы по javascript - PullRequest
2 голосов
/ 21 апреля 2011

Я пытаюсь понять пример клиентского кода для использования элемента управления календаря ASP.Net Ajax. Вот пример кода с сайта asp.net.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml" >  
<head runat="server">  
    <title>Untitled Page</title>  
    <style type="text/css">  
    </style>  
    <link href="http://ajax.microsoft.com/ajax/beta/0911/extended/Calendar/Calendar.css" rel="stylesheet" type="text/css" />  
    <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.js" type="text/javascript"></script>      
    <script src="http://ajax.microsoft.com/ajax/beta/0911/Start.debug.js" type="text/javascript"></script>  
    <script src="http://ajax.microsoft.com/ajax/beta/0911/extended/ExtendedControls.debug.js" type="text/javascript"></script>  
    <script type="text/javascript">  
        Sys.debug = true;  
        Sys.require(Sys.components.calendar, function() {  
            $("#bdate").calendar({});  
        });  
    </script>  
</head>  
<body>  

    <div style="width:1px;height:500px"></div>  
    <input type="text" id="bdate" />  


</body>  
</html>  

Согласно некоторым документам, следующие строки загружают файл javascript Sys.require()).

$("#bdate") использует jQuery для поиска объекта с идентификатором "bdate". Остальное я не понимаю, особенно

  1. .calendar({}), особенно ({}),
  2. function()

Любая помощь или советы приветствуются !!!!

Sys.require(Sys.components.calendar, function() {  
    $("#bdate").calendar({});  
});

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

1. только вызывая стандартную функцию создания «календаря», представьте ее как конструктор.{} - это метод определения строки JSON, которая обычно используется для добавления параметров конфигурации.EG

calender({
        someOption: true,
        someOtherOption: false,
        height: 120px
    });

2.Это способ передать функцию как объект в Javascript или как автономную функцию.Все это говорит о том, что для второго параметра 'require' используйте функцию.Это часто называют функцией обратного вызова, поскольку в зависимости от метода, в который передается функция, он может быть выполнен, когда исходный метод завершает / вызывает обратно.

В этом контексте определенная функция является вызовом jQuery для создания.элемент управления календаря, так что в общих чертах вы можете представить, что он говорит что-то вроде этого:

Require (Компонент), а затем, когда у нас есть этот компонент, вызовите функцию '$ ("# bdate").{}); '

В качестве дополнительного объяснения функция $ ("# bdate"). Calendar ({});будет создавать элемент управления календаря для элемента с идентификатором bddate.

0 голосов
/ 21 апреля 2011

Судя по всему:

Эта часть строки гарантирует, что сценарии календаря / корневые объекты готовы

Sys.require(Sys.components.calendar

И когда они готовы, она вызывает анонимную функцию, который находит элемент с идентификатором bdate , (текстовое поле в html) и присоединяет к нему функциональность отображения календаря с помощью метода calendar .(вероятно, всплывает календарь, когда элемент управления текстового поля получает фокус).Метод calendar был зарегистрирован объектом Sys.components.calendar и в основном является методом расширения, который можно вызывать для объектов textbox, которые возвращаются вызовами селектора jquery.(например, $ ("# xyz"), где #xyz обозначает элемент с идентификатором 'xyz' где-то в вашем html)

function() {  
    $("#bdate").calendar({});  
}

Это анонимная функция, которая также может быть передана как параметр.Таким образом, это в основном второй параметр вызова require (вроде как указатель на функцию в C / C +++, но объявлен как inline).Этот метод вызывается, когда все объекты / скрипты календаря загружены и инициализированы.

наконец, часть {} означает, что он передает пустой объект javascript без свойств в метод создания календаря.Скорее всего, метод принимает ряд необязательных параметров в виде объекта javascript с необязательными свойствами, ни один из которых здесь не используется.

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...