Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 元素事件侦听器回调不使用自定义事件_Javascript_Custom Events - Fatal编程技术网

Javascript 元素事件侦听器回调不使用自定义事件

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

元素事件监听器回调不使用自定义事件,在下面的代码中,将触发文档和窗口事件监听器,但不会在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;
问题是事件从未经过元素,您正在对文档触发事件。而是在元素上激发它:

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:正确。事件从父级到子级捕获阶段,然后从子级到父级冒泡阶段。事件永远不会传递给目标的兄弟姐妹。