平常大部分情况下是不需要触发元素的原生事件,但是有时很有必要模拟原生事件就会用到,直接看代码:
/**
* 触发元素的原生事件
*@params elem <HTMLELEMENT>
*@params type <string> event type, such as: click, blur, focus, change ...
*@returns
*/
function fire(elem, type){
var evt;
if(document.createEventObject){// IE浏览器支持fireEvent方法
elem.fireEvent('on'+type);
}else{// 其他标准浏览器使用dispatchEvent方法
evt = document.createEvent('HTMLEvents');
// initEvent接受3个参数:
// 事件类型,是否冒泡,是否阻止浏览器的默认行为
evt.initEvent(type, true, true);
elem.dispatchEvent(evt);
}
}