首页前端开发其他前端知识JS模拟点击事件的实现过程是什么

JS模拟点击事件的实现过程是什么

时间2024-03-26 21:06:03发布访客分类其他前端知识浏览690
导读:这篇文章给大家分享的是“JS模拟点击事件的实现过程是什么”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“JS模拟点击事件的实现过程是什么”吧。 事件触...
这篇文章给大家分享的是“JS模拟点击事件的实现过程是什么”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“JS模拟点击事件的实现过程是什么”吧。

事件触发器就是用来触发某个元素下的某个事件,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的官方文档

createEventObject的官方文档

再看看高级浏览器(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的源码

是通过模拟来实现了,给某元素绑定一个事件处理函数,如果有触发事件的实际操作就会执行相应的事件处理函数,所以要达到事件触发器的功能只要获取到相应的事件处理函数然后执行。


关于“JS模拟点击事件的实现过程是什么”的内容就介绍到这,感谢各位的阅读,相信大家对JS模拟点击事件的实现过程是什么已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: JS模拟点击事件的实现过程是什么
本文地址: https://pptw.com/jishu/653758.html
JS怎样实现获取元素样式信息,代码是什么 Golang中接口嵌套的操作可以吗,怎么实现

游客 回复需填写必要信息