为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞


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


查看完整回答
反对 回复 2022-05-23
?
holdtom

TA贡献1805条经验 获得超10个赞

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


查看完整回答
反对 回复 2022-05-23
?
慕后森

TA贡献1802条经验 获得超5个赞


            // 直接获取element绑定的方法调用就可以了            var triggle = function(element, method) {                var func = element[method];                return func();            }             window.onload=function() {                triggle(document.getElementById("abc"), "onclick");            };

 


查看完整回答
反对 回复 2022-05-23
  • 3 回答
  • 0 关注
  • 298 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号