Javascript公共脚本库系列(三): 格式化事件对象/事件对象详解
2010-09-14 13:40:15 来源:WEB开发网四.实现代码
我们的ScriptHelper类又要添加两个新方法了:
/* 获取事件对象
使用举例: <div onclick=" var oEvent=ScriptHelper.getEvent();"></div>
注意事项: 只能在事件中使用. 比如onclick中. 不能在自定义方法中使用.
*/
scriptHelper.prototype.getEvent = function()
{
if( window.event )
{
return window.event;
}
else
{
return this.getEvent.caller.arguments[0];
}
}
/* 取消冒泡事件
使用举例: <div onclick=" var oEvent=ScriptHelper.cancelBubble();"></div>
注意事项: 只能在事件中使用. 比如onclick中. 不能在自定义方法中使用.
*/
scriptHelper.prototype.cancelBubble = function()
{
if( window.event )
{
window.event.cancelBubble = true;
}
else
{
return this.cancelBubble.caller.arguments[0].cancelBubble = true;
}
}
这两个方法十分简单.getEvent 用于获取事件对象. cancelBubble和getEvent类似,但不是返回事件对象, 而是取消事件对象的冒泡事件.
也许有人会觉得getEvent 和cancelBubble中有重复代码,认为可以在cancelBubble中调用getEvent 获取事件对象,然后再取消冒泡事件. 然而不能这么做, 这两个事件都只能用在事件处理函数中, cancelBubble已经是一个自定义方法, 不能在自定义方法中使用getEvent .原因是在DOM事件中,事件对象是事件的唯一参数.对于FireFox我们是通过caller.arguments[0]来捕获事件对象,caller表示此方法的调用者, 必须为事件. 下文中还有对于事件参数的讲解.
Tags:Javascript 公共 脚本
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接