用js模拟鼠标点击事件(事件触发)

来源:互联网 发布:税友软件好用吗 编辑:程序博客网 时间:2024/06/09 23:26

事件触发器就是用来触发某个元素下的某个事件,IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法。

一般我们在元素上绑定事件后,是靠用户在这些元素上的鼠标行为来捕获或者触发事件的,或者自带的浏览器行为事件,比如click,mouseover,load等等,有些时候我们需要自定义事件或者在特定的情况下需要触发这些事件。这个时候我们可以使用IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法。

例如在ie下看看这个例子:

01//document上绑定自定义事件ondataavailable
02document.attachEvent('ondataavailable'function (event) {
03alert(event.eventType);
04});
05var obj=document.getElementById("obj");
06//obj元素上绑定click事件
07obj.attachEvent('onclick'function (event) {
08alert(event.eventType);
09});
10//调用document对象的createEventObject方法得到一个event的对象实例。
11var event = document.createEventObject();
12event.eventType = 'message';
13//触发document上绑定的自定义事件ondataavailable
14document.fireEvent('ondataavailable', event);
15//触发obj元素上绑定click事件
16document.getElementById("test").onclick = function () {
17obj.fireEvent('onclick', event);
18};

再看看高级浏览器(chrome,firefox等)的例子:

01//document上绑定自定义事件ondataavailable
02document.addEventListener('ondataavailable'function (event) {
03alert(event.eventType);
04}, false);
05var obj = document.getElementById("obj");
06//obj元素上绑定click事件
07obj.addEventListener('click'function (event) {
08alert(event.eventType);
09}, false);
10//调用document对象的 createEvent 方法得到一个event的对象实例。
11var event = document.createEvent('HTMLEvents');
12// initEvent接受3个参数:
13// 事件类型,是否冒泡,是否阻止浏览器的默认行为
14event.initEvent("ondataavailable"truetrue);
15event.eventType = 'message';
16//触发document上绑定的自定义事件ondataavailable
17document.dispatchEvent(event);
18
19var event1 = document.createEvent('HTMLEvents');
20event1.initEvent("click"truetrue);
21event1.eventType = 'message';
22//触发obj元素上绑定click事件
23document.getElementById("test").onclick = function () {
24obj.dispatchEvent(event1);
25};
原文地址:http://blog.csdn.net/zeroxiaozou/article/details/12248781

相关文章:http://caiceclb.iteye.com/blog/701532

0 0