事件触发器用于触发某个元素下的事件。 IE 中的 fireEvent 方法,高级浏览器(chrome、firefox 等)中的 dispatchEvent 方法。
一般来说,我们给元素绑定事件后,我们依赖用户在这些元素上的鼠标动作来捕捉或触发事件,或者是浏览器内置的行为事件,比如click、mouseover、load等,有时我们需要自定义事件或在特定情况下触发这些事件。这时候我们可以在IE下使用fireEvent方法,高级浏览器(chrome、firefox等)都有dispatchEvent方法。

比如看看ie下的这个例子:
//document上绑定自定义事件ondataavailable document.attachEvent('ondataavailable', function (event) { alert(event.eventType); }); var obj=document.getElementById("obj"); //obj元素上绑定click事件 obj.attachEvent('onclick', function (event) { alert(event.eventType); }); //调用document对象的createEventObject方法得到一个event的对象实例。 var event = document.createEventObject(); event.eventType = 'message'; //触发document上绑定的自定义事件ondataavailable document.fireEvent('ondataavailable', event); //触发obj元素上绑定click事件 document.getElementById("test").onclick = function () { obj.fireEvent('onclick', event); };
fireEvent 官方文档:(v=vs.85).aspx
createEventObject 官方文档:(v=vs.85).aspx
看看高级浏览器(chrome、firefox 等)的例子:
//document上绑定自定义事件ondataavailable document.addEventListener('ondataavailable', function (event) { alert(event.eventType); }, false); var obj = document.getElementById("obj"); //obj元素上绑定click事件 obj.addEventListener('click', function (event) { alert(event.eventType); }, false); //调用document对象的 createEvent 方法得到一个event的对象实例。 var event = document.createEvent('HTMLEvents'); // initEvent接受3个参数: // 事件类型,是否冒泡,是否阻止浏览器的默认行为 event.initEvent("ondataavailable", true, true); event.eventType = 'message'; //触发document上绑定的自定义事件ondataavailable document.dispatchEvent(event); var event1 = document.createEvent('HTMLEvents'); event1.initEvent("click", true, true); event1.eventType = 'message'; //触发obj元素上绑定click事件 document.getElementById("test").onclick = function () { obj.dispatchEvent(event1); };
在实际的包中没那么简单。我看了一下jQuery.event.trigger()的源码。这是通过模拟实现的。将事件处理函数绑定到元素。如果有实际的操作触发事件,就会执行相应的事件处理函数,所以要实现事件触发的功能,只需获取相应的事件处理函数并执行即可。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-381712-1.html
这点可以学朝鲜一下下
体育老师教你的历史