WEB开发网
开发学院网页设计JavaScript Javascript公共脚本库系列(三): 格式化事件对象/事... 阅读

Javascript公共脚本库系列(三): 格式化事件对象/事件对象详解

 2010-09-14 13:40:15 来源:WEB开发网   
核心提示: 四.实现代码 我们的ScriptHelper类又要添加两个新方法了:/*获取事件对象使用举例: <div onclick=" var oEvent=ScriptHelper.getEvent();"></div>注意事项: 只能在事件中使用. 比

四.实现代码

我们的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表示此方法的调用者, 必须为事件. 下文中还有对于事件参数的讲解.

上一页  1 2 3 4 5  下一页

Tags:Javascript 公共 脚本

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接