Javascript 元素事件侦听器回调不使用自定义事件
元素事件监听器回调不使用自定义事件,在下面的代码中,将触发文档和窗口事件监听器,但不会在IE11、FF33和Chrome38上测试元素,结果相同。有什么想法吗?我是否误用了自定义事件 var el=document.getElementById'some-elem'; el.addEventListener“自定义”,函数e{ console.logElement get事件:+e.type; },假,真; document.addEventListener'custom',函数e{ console.logdocument got事件:+e.type; },假; window.addEventListener'custom',函数e{ console.logwindow get事件:+e.type; },假; var evt=document.createEvent'CustomEvent'; evt.initCustomEvent'custom',true,false; 文件.dispatchEventevt;Javascript 元素事件侦听器回调不使用自定义事件,javascript,custom-events,Javascript,Custom Events,元素事件监听器回调不使用自定义事件,在下面的代码中,将触发文档和窗口事件监听器,但不会在IE11、FF33和Chrome38上测试元素,结果相同。有什么想法吗?我是否误用了自定义事件 var el=document.getElementById'some-elem'; el.addEventListener“自定义”,函数e{ console.logElement get事件:+e.type; },假,真; document.addEventListener'custom',函数e{ cons
问题是事件从未经过元素,您正在对文档触发事件。而是在元素上激发它: var el=document.getElementById'some-elem'; el.addEventListener“自定义”,函数e{ console.logElement get事件:+e.type; },假,真; document.addEventListener'custom',函数e{ console.logdocument got事件:+e.type; },假; window.addEventListener'custom',函数e{ console.logwindow get事件:+e.type; },假; var evt=document.createEvent'CustomEvent'; evt.initCustomEvent'custom',true,false;
el.dispatchEventevt;// 问题是事件从未经过元素,您正在对文档触发事件。而是在元素上激发它: var el=document.getElementById'some-elem'; el.addEventListener“自定义”,函数e{ console.logElement get事件:+e.type; },假,真; document.addEventListener'custom',函数e{ console.logdocument got事件:+e.type; },假; window.addEventListener'custom',函数e{ console.logwindow get事件:+e.type; },假; var evt=document.createEvent'CustomEvent'; evt.initCustomEvent'custom',true,false;
el.dispatchEventevt;//在我的例子中,分派事件的对象与侦听对象不同,这是否意味着自定义事件只能在同一个对象上侦听,窗口和文档除外?非常困惑@eihero:我已经更新了答案,试图回答这个评论。这是否意味着冒泡事件将永远不会通过兄弟元素?@eihero:正确。事件从父级到子级捕获阶段,然后从子级到父级冒泡阶段。事件永远不会到达目标的同级。在我的情况下,分派事件的对象与侦听对象不同,这是否意味着自定义事件只能在同一对象上侦听,窗口和文档除外?非常困惑@eihero:我已经更新了答案,试图回答这个评论。这是否意味着冒泡事件将永远不会通过兄弟元素?@eihero:正确。事件从父级到子级捕获阶段,然后从子级到父级冒泡阶段。事件永远不会传递给目标的兄弟姐妹。