我正在尝试了解使用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查找id为#34; bdate&#34;的对象。我不了解其余部分,特别是
.calendar({}),
,尤其是({}),
function()
任何帮助或提示都很受欢迎!!!!
Sys.require(Sys.components.calendar, function() {
$("#bdate").calendar({});
});
答案 0 :(得分:0)
从它的外观来看:
该部分行确保日历脚本/根对象准备就绪
Sys.require(Sys.components.calendar
当它们准备就绪时,它会调用匿名函数,该函数会找到ID为 bdate 的项目(html中的文本框),并使用附加日历显示功能日历方法。 (当文本框控件获得焦点时,可能会弹出日历)。 日历方法由 Sys.components.calendar 对象注册,基本上是可以在jquery选择器调用返回的文本框对象上调用的扩展方法。 (例如$(“#xyz”),其中#xyz表示html中某处id为'xyz'的元素)
function() {
$("#bdate").calendar({});
}
这是一个匿名函数,也可以作为参数传递。所以它基本上是 require 调用的第二个参数(有点像C / C +++中的函数指针,但是声明为内联)。当日历对象/脚本都已加载并初始化时,将调用此方法。
最后,{}
部分意味着它将没有属性的空javascript对象传递给日历创建方法。该方法很可能采用具有可选属性的javascript对象形式的许多可选参数,这里没有使用这些参数。
希望有所帮助
答案 1 :(得分:0)
1.只是调用默认的“日历”创建函数,将其想象为构造函数。 {}是一种定义JSON字符串的方法,通常是添加配置选项的位置。 E.G。
calender({
someOption: true,
someOtherOption: false,
height: 120px
});
2.这是一种在Javascript或自治函数中将函数作为对象传递的方法。所有它的说法是'require'的第二个参数使用该函数。这通常称为回调函数,因为取决于函数传递给它的方法,可以在原始方法完成/回调时执行。
在这个上下文中,定义的函数是一个用于创建日历控件的jQuery调用,所以在基本术语中你可以想象它会这样说:
要求(组件),然后一旦我们拥有该组件,就调用函数'$(“#bdate”)。calendar({});'
作为进一步解释函数$(“#bdate”)。calendar({});将在ID为bddate的元素上创建日历控件。