2011-04-21 3 views
2

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

<!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({}); 
}); 

ответ

0

Судя по ней:

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

Sys.require(Sys.components.calendar 

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

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

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

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

Надежда, что помогает

0

1.Is просто вызов функции создания «календарь» по умолчанию, представьте его как конструктор. {} - это метод определения строки JSON, в которой обычно добавляются параметры конфигурации. НАПРИМЕР.

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

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^