W3C定义的DOM2 事件接口方法

引言

在W3C发布的DOM2级别的事件规范中,定义了事件接口。事件的调用者通过事件接口获取事件的上下文信息,通常而言,实施事件接口的对象传递第一个参数给事件调用者。每个事件具有特定的类型,而每个类型都具有特定的关联信息,这些信息通过事件类型衍生的特有接口传递给事件调用者,这些衍生接口在事件对象被事件监听器获取时实施。在事件接口规范中,定义了3个常量,7个只读属性与3个事件接口方法。具体如下:

interface Event {

  // PhaseType
  const unsigned short      CAPTURING_PHASE                = 1;
  const unsigned short      AT_TARGET                      = 2;
  const unsigned short      BUBBLING_PHASE                 = 3;

  readonly attribute DOMString        type;
  readonly attribute EventTarget      target;
  readonly attribute EventTarget      currentTarget;
  readonly attribute unsigned short   eventPhase;
  readonly attribute boolean          bubbles;
  readonly attribute boolean          cancelable;
  readonly attribute DOMTimeStamp     timeStamp;
  void               stopPropagation();
  void               preventDefault();
  void               initEvent(in DOMString eventTypeArg, 
                               in boolean canBubbleArg, 
                               in boolean cancelableArg);
};

事件接口方法

initEvent

initEvent 方法用于初始化通过 DocumentEvent 接口创建的事件。该方法仅在事件通过dispatchEvent 方法发送时被调用。根据需要,该方法可多次调用并且最后一次调用结果优先展示。如果事件子类对象调用initEvent 方法,则只在initEvent 方法中涉及的属性信息会被修改而其他事件属性值将保留不变

参数

eventType (参数类型为DOM字符串):定义事件类型,该类型可为标准规定的任意事件类型或一个新的事件类型,该字符串必须为 一个XML 名称,而新的事件类型不能以字符串“DOM”开头,该前缀为未来事件DOM集合设计保留,强烈推荐第三方公司使用自己公司前缀定义事件类型以避免可能的新事件冲突。

canBubble (参数类型为boolean):规定事件是否可以冒泡

cancelable(参数类型为boolean):规定事件默认行为是否可被阻止

示例

// 创建事件.
var event = document.createEvent('Event');

// 初始化一个点击事件,可以冒泡,无法被取消
event.initEvent('click', true, false);

preventDefault

如果事件可被取消,preventDefault 方法用于标志事件将被取消,这意味着如何正常情况下的事件默认行为将不会发生。对于不能取消默认方法的事件该方法无效,该方法可用于事件流的任意阶段,并且在事件传播过程中一直生效。该方法可用于事件流的任意阶段。

参数

示例

var alink=document.getElementById("alink");
subdiv.onclick=function(event){
    //阻止链接导航发生
    event.prevetnDafault();
};

stopPropagation

如果事件可被取消,preventDefault 方法用于标志事件将被取消,这意味着如何正常情况下的事件默认行为将不会发生。对于不能取消默认方法的事件该方法无效,该方法可用于事件流的任意阶段,并且在事件传播过程中一直生效。该方法可用于事件流的任意阶段。

参数

示例

var btn=document.getElementById("myButton");
btn.conclick=function(event){
    //停止事件在DOM层次传播
    event.stopPropagation();
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mystonelxj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值