创建对象,初始化对象属性,给节点分派一个合成事件

XML DOM createEvent() 方法

Document 对象参考手册

定义和用法

createEvent() 方法创建新的 Event 对象

语法:

createEvent(eventType)
参数 描述
eventType
想获取的 Event 对象的事件模块名。

关于有效的事件类型列表,请参阅“说明”部分。

返回值

返回新创建的 Event 对象,具有指定的类型。

抛出

如果实现支持需要的事件类型,该方法将抛出代码为 NOT_SUPPORTED_ERR 的 DOMException 异常

说明

该方法将创建一种新的事件类型,该类型由参数 eventType 指定。注意,该参数的值不是要创建的事件接口的名称,而是定义那个接口的 DOM 模块的名称。

下表列出了 eventType 的合法值和每个值创建的事件接口:

参数 事件接口 初始化方法
HTMLEvents HTMLEvent iniEvent()
MouseEvents MouseEvent iniMouseEvent()
UIEvents UIEvent iniUIEvent()

用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象。关于初始化方法的详细信息,请参阅 Event 对象参考

该方法实际上不是由 Document 接口定义的,而是由 DocumentEvent 接口定义的。如果一个实现支持 Event 模块,那么Document 对象就会实现 DocumentEvent 接口并支持该方法。

Document 对象参考手册

initEvent() 方法

Event 对象

定义和用法

初始化新事件对象的属性

语法

event.initEvent(eventType,canBubble,cancelable)
参数 描述
eventType 字符串值。事件的类型。
canBubble 事件是否起泡。
cancelable 是否可以用 preventDefault() 方法取消事件。

说明

该方法将初始化 Document.createEvent() 方法创建的合成 Event 对象的 type 属性、bubbles 属性和 cancelable 属性。只有在新创建的 Event 对象被 Document 对象或 Element 对象的 dispatchEvent() 方法分派之前,才能调用 Event.initEvent() 方法。

Event 对象

XML DOM dispatchEvent() 方法

Element 对象参考手册

定义和用法

dispatchEvent() 方法给节点分派一个合成事件。

语法:

dispatchEvent(evt)
参数 描述
evt 必需。要分派的 Event 对象。

返回值

如果在事件传播过程中调用了 evt 的 preventDefault() 方法,则返回 false,否则返回 true。

抛出

如果 Event 对象 evt 没有被初始化,或者它的 type 属性为 null 或空串,该方法将抛出异常。

描述

该方法将分派一个合成事件,它由 Document.createEvent() 创建,由 Event 接口或它的某个子接口定义的初始化方法初始化。

调用该方法的节点将成为事件的目标节点,该事件在捕捉阶段中第一次沿着文档树向下传播。如果该事件的 bubbles 属性为 true,那么在事件的目标节点自身处理事件后,它将沿着文档树向上起泡。

Element 对象参考手册

<body>
<div style="width:300px;height:300px;background: red;">

<input type="button" value="点击">
<input type="button" value="点击">

</div>
<script>
//事件绑定
Element.prototype.on = function (ev, fn) {
  if (window.attachEvent) {
    this.attachEvent("on" + ev, fn)
  } else {
    this.addEventListener(ev, fn, false)
  }
  return this;
}

//事件触发
Element.prototype.trigger = function (ev) {
  var evt = document.createEvent(‘MouseEvents‘);
  evt.initEvent(ev, true, false);
  this.dispatchEvent(evt);
  return this;
}

//事件代理
Element.prototype.delegate = function (elem, type, fn) {
  this.on(type, function (e) {
    var e = e || window.event;
    var targetNode = e.target || e.srcElement;
    if (targetNode.nodeName.toLowerCase() === elem) {
      fn();
    }
  })
  return this;
}

//测试代码
var oDiv = document.getElementsByTagName("div")[0];

/*oDiv.on("click",function(){
  alert(1)
})
oDiv.trigger(‘click‘)*/

oDiv.delegate(‘input‘, ‘click‘, function (e) {
  alert(1);
});
</script>
</body>

时间: 2024-10-20 21:53:13

创建对象,初始化对象属性,给节点分派一个合成事件的相关文章

波哥学JAVA,定义类 创建对象 实例化对象 属性 类调用属性或者方法

定义类 声明对象  创建对象 实例化对象 属性 对象调用属性或者方法 举例,下面定义类了一个类并声明属性,写了一个方法: 创建对象 实例化对象 属性 类调用属性或者方法

IOS中将对象属性列表归档成一个plist文件中

归档步骤: 1.将一个NSDictionary对象归档到一个plist属性列表中 <1> 首先要将数据封装成字典: NSMutableDictionary * dict = [NSMutableDctionary dictionary]; [dict setObject:@"烟灰" forKey:@"name"]; [dict setObject:@"1234567" forKey:@"phoneNumber"];

objective-C 对象初始化/属性

第十章 对象的初始化 两种创建对象的方法: 1. [类名 new]  2. [ [类名 alloc ] init ];  其中第二种方法是应该熟练使用的方法. 初始化对象: 对于继承了NSObject的类来说,调用超累的init方法可以让NSObject执行它所需的所有操作,以便于对象能够响应消息并处理保留计数器.而对于从其他类继承的类,通过这种方法可以实现自身的全新初始化. 与分配对应的操作时初始化,初始化从操作系统取得一块内存用于存储对象,init方法(执行初始化操作的方法)一般都会返回正在

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法EDIT Object.defineProperty(obj, prop, descriptor) 参数 obj 需要定义属性的对象. prop 需定义或修改的属性的名字. descriptor 将被定义或修改的属性的描述符. 返回值 返回传入函数的对象,即第一个参数obj 描述EDIT 该方法允许精确添加或修改对象的属性.一般情况下,我们为对象添加属性是通过

Objective-C 初始化对象

对象初始化 两种不同方法创建对象: 1.是[类名 new],2.[[类名 alloc] init].这两种方法是等价的,不过Cocoa惯例使用alloc和init而不使用new. 分配对象 分 配(allocation)是一个新对象诞生的过程.向某个类发送alloc消息,就能为类分配一块足够大的内存,以存放该类的全部实例变量.同时 alloc方法还顺便将这块内存区域全部初始化为0,.不用担心由于初始化内存而引起各种随机bug.所有的BOOL类型变量被初始化为NO,所有int 类型变量被初始化为0

javascript的类方法,对象属性,原型方法的相关理解

1.对象方法,属性:是属于对象实例层次上的方法,没创建一个实例,此实例便有了相应的对象方法,实例可以使用对象方法. eg:function People(name){ //对象属性,公有的(即每个实例都有一个此属性或方法) this.name = name; //对象方法,公有的 this.introduce = function(){ alert('my name = '+this.name); }: } 2.类方法,属性(静态方法,属性):作用在类层次的,不需要生成实例已经存在的属性,在内存

黑马程序员---OC---内存管理(在对象属性的- setter和- dealloc方法里面写内存管理代码)

------iOS培训.Java培训.Android培训, iOS学习型技术博客,期待与您交流------ 内存管理(在对象属性的- setter和- dealloc方法里面写内存管理代码) 内存管理范围: 任何继承自NSObject的对象:其他数据类型(int.char.double.float.struct.enum等)不需要内存管理 对象的引用计数器: 每个OC对象内部都有自己的int类型(占据4个字节)的引用计数器,表示“对象被引用的次数”. 1> 当使用alloc.new或者copy创

创建对象与对象依赖关系

创建对象 SpringIOC容器,是spring核心内容.作用: 创建对象 & 处理对象的依赖关系 IOC容器创建对象: 创建对象, 有几种方式: 1) 调用无参数构造器 在bean类中写入无参构造函数 public User() { // TODO Auto-generated constructor stub } xml配置文件 <!-- 1.默认无参的构造器 --> <bean id="user1" class="com.gqx.create.

Node对象属性

1.Node对象属性一            * nodeName             * nodeType            * nodeValue * 使用dom解析html时候,需要html里面的标签,属性和文本都封装成对象 <body> <span id="spanid">哈哈呵呵</span> <script type="text/javascript"> //获取标签对象 var span1 = d