javascript 主动派发事件总结


Posted in Javascript onAugust 09, 2011

1,dispatchEvent()
这是标准的触发事件方法,使用时需要先创建好事件对象。如下

var evt = document.createEvent('Event'); 
evt.initEvent('click',true,true); 
element.dispatchEvent(evt);

2,fireEvent()
这是IE旧版本中实现的触发事件方法,它无须创建事件对象,直接使用。如下
element.fireEvent('onclick');

注意:与attachEvent一样它需要加上“on”
一个兼容性所有浏览器的版本,如下
var dispatch = window.addEventListener ? 
function(el, type){ 
try{ 
var evt = document.createEvent('Event'); 
evt.initEvent(type,true,true); 
el.dispatchEvent(evt); 
}catch(e){alert(e)}; 
} : 
function(el, type){ 
try{ 
el.fireEvent('on'+type); 
}catch(e){alert(e)} 
};

上面封装的是一个触发事件的通用方法,即可以触发各种事件。浏览器还提供了特定方法来触发单独的事件。
4,click()
用来模拟用户点击,除Safari/Chrome不支持非input/button外,其它浏览器都支持。
5,form.submit()
模拟form提交,相对于点击input[type=submit]
6,input/textarea.select()
模拟用户选定文本。
7,focus()
模拟获取光标焦点
8,blur()
模拟失去光标焦点
9,input/textarea/select.change()
模拟文本或选项发生变化
10,自定义事件的派发实际就是获取该函数,然后调用

相关:
https://developer.mozilla.org/En/DOM/Element.dispatchEvent
http://msdn.microsoft.com/en-us/library/ms536423%28v=VS.85%29.aspx
https://developer.mozilla.org/en/DOM/Input.select 

Javascript 相关文章推荐
JavaScript实现复制功能各浏览器支持情况实测
Jul 18 Javascript
JS和Jquery获取和修改label的值的示例代码
Jan 15 Javascript
SeaJS 与 RequireJS 的差异对比
Dec 08 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
深入剖析JavaScript面向对象编程
Jul 12 Javascript
Three.js学习之正交投影照相机
Aug 01 Javascript
vue.js获取数据库数据实例代码
May 26 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
Jan 24 Javascript
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
JavaScript实现简单的文本逐字打印效果示例
Apr 12 Javascript
分享一个vue项目“脚手架”项目的实现步骤
May 26 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 Vue.js
JsDom 编程小结
Aug 09 #Javascript
IE 当eval遇上function的处理
Aug 09 #Javascript
取得窗口大小 兼容所有浏览器的js代码
Aug 09 #Javascript
Javascript实现的类似Google的Div拖动效果代码
Aug 09 #Javascript
基于Jquery的文字自动截取(提供源代码)
Aug 09 #Javascript
JQuery动态创建DOM、表单元素的实现代码
Aug 09 #Javascript
用JS判断IE版本的代码 超管用!
Aug 09 #Javascript
You might like
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
零基础php编程好学吗
2019/10/11 PHP
javascript 避免闭包引发的问题
2009/03/17 Javascript
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
python中查看变量内存地址的方法
2015/05/05 Python
深入理解python多进程编程
2016/06/12 Python
python3实现逐字输出的方法
2019/01/23 Python
python3获取url文件大小示例代码
2019/09/18 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
ASP.NET中的身份验证有那些
2012/07/13 面试题
函授教育个人学习的自我评价
2013/12/31 职场文书
表彰先进的通报
2014/01/31 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Java 异步任务计算FutureTask
2022/04/28 Java/Android