就是如何用脚本触发一个元素的某个事件,而不是人为的。请不要复制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;} |
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);
};
}
慕后森
TA贡献1802条经验 获得超5个赞
// 直接获取element绑定的方法调用就可以了 var triggle = function(element, method) { var func = element[method]; return func(); } window.onload=function() { triggle(document.getElementById("abc"), "onclick"); }; |
添加回答
举报
0/150
提交
取消
