javascript触发模拟鼠标点击事件


Posted in Javascript onJune 26, 2019

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 写类方式之八
Jul 05 Javascript
一些经常会用到的Javascript检测函数
May 31 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
Jan 24 Javascript
无限树Jquery插件zTree的常用功能特性总结
Sep 11 Javascript
javascript控制图片播放的实现代码
Jul 29 Javascript
canvas红包照片实例分享
Feb 28 Javascript
JS中的回调函数实例浅析
Mar 21 Javascript
JavaScript中click和onclick本质区别与用法分析
Jun 07 Javascript
vuejs前后端数据交互之从后端请求数据的实例
Aug 11 Javascript
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
JavaScript监听触摸事件代码实例
Dec 30 Javascript
js实现旋转木马轮播图效果
Jan 10 Javascript
JavaScript动态添加数据到表单并提交的几种方式
Jun 26 #Javascript
react koa rematch 如何打造一套服务端渲染架子
Jun 26 #Javascript
通过javascript实现段落的收缩与展开
Jun 26 #Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
Jun 26 #Javascript
Vue实现日历小插件
Jun 26 #Javascript
微信小程序入口场景的问题集合与相关解决方法
Jun 26 #Javascript
Vue组件实现触底判断
Jun 26 #Javascript
You might like
php导出word格式数据的代码实例
2013/11/25 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
php删除指定目录的方法
2015/04/03 PHP
PHP中的类型约束介绍
2015/05/11 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Python切片知识解析
2016/03/06 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
Django框架自定义session处理操作示例
2019/05/27 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
实习教师自我鉴定
2013/12/12 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
市场营销求职信范文
2014/02/21 职场文书
六五普法规划实施方案
2014/03/21 职场文书
篝火晚会主持词
2014/03/25 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS