我有以下代码http://jsfiddle.net/yc7sj3pt/2/
document.getElementById('obj_one').addEventListener('mouseover', function(){
var e = document.createEvent('HTMLEvents');
e.initEvent('mouseover', true, false);
document.getElementById('obj_two').dispatchEvent(e);
console.log('hover');
}, false);
Run Code Online (Sandbox Code Playgroud)
#obj_two当我mouseover打开时#obj_one,我正试图做出反应悬停(因此变为红色),但它无法正常工作.我究竟做错了什么?
根据这个答案,你不能:
由用户代理生成的事件,或者作为用户交互的结果,或者作为DOM更改的直接结果,由用户代理信任的事件具有通过DocumentEvent.createEvent脚本生成的事件所不具有的权限("Event")方法,使用Event.initEvent()方法修改,或通过EventTarget.dispatchEvent()方法调度.受信任事件的isTrusted属性值为true,而不受信任事件的isTrusted属性值为false.
大多数不受信任的事件不应触发默认操作,但click或DOMActivate事件除外.
相反,推荐的方法是添加和删除一个关于mouseover和mouseout事件的类,我已经在这个jsfiddle中完成了.
| 归档时间: |
|
| 查看次数: |
2820 次 |
| 最近记录: |