你好,请问用原生的js怎么实现和trigger方法一样的功能?

就是如何用脚本触发一个元素的某个事件,而不是人为的。请不要复制jquery的源代码,那对我没有任何帮助。我刚看了,这个方法的代码太复杂,除非对jquery整个框架都了解才能看懂。
谢谢你们的回答,直接调用element的方法不是很有用,有的浏览器不支持。
我仔细翻看了xml dom的api文档,觉得下面的方法才是比较符合规范的,浏览器支持较好:
var event = document.createEvent("MouseEvents");//onchange事件要用HTMLEvents
event.initEvent("click",true,true);//三个参数分别对应event的 type 属性、bubbles 属性和 cancelable 属性
element.dispatchEvent(event);//给元素分派事件

喵喵时光机
浏览 299回答 3
3回答

浮云间

//&nbsp;原生的js触发click事件elem.click();&nbsp;//&nbsp;Jquery也用相同的方式//&nbsp;Jquery&nbsp;trigger的代码片段trigger:&nbsp;function&nbsp;(event,&nbsp;data,&nbsp;elem,&nbsp;onlyHandlers)&nbsp;{//&nbsp;...//&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;这里是触发事件的代码&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elem[type]();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;IE<9&nbsp;dies&nbsp;on&nbsp;focus/blur&nbsp;to&nbsp;hidden&nbsp;element&nbsp;(#1486,#12518)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;only&nbsp;reproducible&nbsp;on&nbsp;winXP&nbsp;IE8&nbsp;native,&nbsp;not&nbsp;IE9&nbsp;in&nbsp;IE8&nbsp;mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//&nbsp;...//&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;event.result;}

holdtom

//原生js trigger方法function trigger(elem,event){if(document.all) {elem.event();} else {var evt = document.createEvent("Events"); //还有onchange则是HtmlEventsevt.initEvent(event,true,true);elem.dispatchEvent(evt);};}

慕后森

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;直接获取element绑定的方法调用就可以了&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;triggle&nbsp;=&nbsp;function(element,&nbsp;method)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;func&nbsp;=&nbsp;element[method];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;func();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.onload=function()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;triggle(document.getElementById("abc"),&nbsp;"onclick");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
JQuery