三、 创建定制行为组件—MyHoverBehavior
根据我们以前的讲解,我们现在的任务就是使用JavaScript代码把客户端逻辑封装到一个定制行为中。下面,让我们作详细剖析。
为了更好地理解MS AJAX倡导及推出的面向对象JavaScript技术,在本部分我们故意模拟了MS AJAX脚本库的表达形式,即以独立的函数方式而不是以内联方式定义所有的属性存取器函数,方法及事件等。
(一) Prototype定义
首先,象往常一样,在定义完命名空间和类构造器之后,我们要在prototype块中声明私有属性,声明这些属性相关的get及set存取器函数,要重载的父类的方法initialize和dispose,以及所有相关的事件处理器。见如下代码:
清单1—定制行为的prototype块代码
ZXZSamples.MyHoverBehavior.prototype = {
_hoverElement : null,
_unhoverDelay : 0,
_hoverCount : 0,
_hoverHandler : null,
_unHoverHandler : null,
get_hoverElement: ZXZSamples$MyHoverBehavior$get_hoverElement,
set_hoverElement: ZXZSamples$MyHoverBehavior$set_hoverElement,
get_unhoverDelay: ZXZSamples$MyHoverBehavior$get_unhoverDelay,
set_unhoverDelay: ZXZSamples$MyHoverBehavior$set_unhoverDelay,
initialize: ZXZSamples$MyHoverBehavior$initialize,
dispose: ZXZSamples$MyHoverBehavior$dispose,
add_hover: ZXZSamples$MyHoverBehavior$add_hover,
remove_hover: ZXZSamples$MyHoverBehavior$remove_hover,
_onhover: ZXZSamples$MyHoverBehavior$_onhover,
add_unhover: ZXZSamples$MyHoverBehavior$add_unhover,
remove_unhover: ZXZSamples$MyHoverBehavior$remove_unhover,
_onunhover: ZXZSamples$MyHoverBehavior$_onunhover,
_delayedUnhoverHandler:ZXZSamples$MyHoverBehavior$_delayedUnhoverHandler
}
(二) 初始化和事件处理
现在,让我们来讨论一下方法initialize。列表2给出了相应的代码实现。
清单2—initialize方法
function ZXZSamples$MyHoverBehavior$initialize() {
ZXZSamples.MyHoverBehavior.callBaseMethod(this, 'initialize');
this._hoverHandler = Function.createDelegate(this, this._onhover);
this._unHoverHandler = Function.createDelegate(this, this._unhoverDelay? this._delayedUnhoverHandler :this._onunhover);
$addHandler(this.get_element(), "mouseover", this._hoverHandler);
$addHandler(this.get_element(), "focus", this._hoverHandler);
$addHandler(this.get_element(), "mouseout", this._unHoverHandler);
$addHandler(this.get_element(), "blur", this._unHoverHandler);
if (this._hoverElement){
$addHandler(this._hoverElement, "mouseover", this._hoverHandler);
$addHandler(this._hoverElement, "focus", this._hoverHandler);
$addHandler(this._hoverElement, "mouseout", this._unHoverHandler);
$addHandler(this._hoverElement, "blur", this._unHoverHandler);
}
}
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Ajax技术专题 (556篇文章)
- .NET移动与嵌入式技术 (5963篇文章)
- .NET开发手册 (5664篇文章)
- Ajax技术应用开发 (556篇文章)
- ASP.NET教程 (8457篇文章)
- Wlan组网----家庭专题 (4206篇文章)
- Ajax框架与实例 (220篇文章)
- .NET实用开发 (1683篇文章)
- Ajax技术核心 (182篇文章)
- Ajax的WEB开发 (141篇文章)
- AJAX应用之注册用户即时检测 (14次浏览)
- AJAX应用之草稿自动保存 (7次浏览)
- 为ASP.NET MVC框架添加AJAX支持 (4次浏览)
- AJAX通用类:AJAXRequest v0.3 (3次浏览)
- AJAX开发简略 (3次浏览)
- ajax的缺点 (3次浏览)
- ajax代理程序自动判断字符编码 (3次浏览)
- AJAX打造博客无刷新搜索 (2次浏览)
- 不用组件实现Ajax效果 (0次浏览)
- XMLHttpRequest对象如何铸就AJAX辉煌 (0次浏览)



