- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我对下面的脚本感到困惑:
var event = new Event('shazam');
document.body.addEventListener('shazam',function(){
alert('body');
});
document.addEventListener('shazam',function(){
alert('document');
});
window.addEventListener('shazam',function(){
alert('window');
});
document.body.dispatchEvent(event);
当我在浏览器上运行此脚本时,我只会收到 alert('body'); 事件。但是,如果我将 addEventListener 的捕获参数(第三个可选参数)设置为 true,则所有警报都会按应有的顺序捕获。
为什么 shazam 事件 没有冒出来?
最佳答案
您需要将bubbles
属性设置为true,并且您必须在构造期间执行此操作:
var event = new Event('shazam', { bubbles: true });
或使用 initEvent
的旧方法,将 true 作为第二个参数传递以允许冒泡:
event.initEvent('shazam', true);
关于javascript - 为什么用 dispatchEvent 触发定义的事件不遵守事件的冒泡行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23048322/
我正在使用 Angular2 + TypeScript,当我尝试执行这段代码时: var event = new Event('check'); window.dispatchEvent(event)
在我的 Angular 应用程序中,我必须打开一个新窗口并将一个事件发送回 Controller 。该代码适用于 Chrome 和 Firefox,但它不适用于 Edge 下面是来自外部文件的代码 t
我在获取 dispatchEvent 时遇到问题上类。我正在尝试消除对 jQuery 的依赖,并且一直在对 native API 进行自己的小扩展,但我无法获取我的 trigger 版本使用 disp
我有编写的代码: window.addEventListener("orientationchange", function() { //code here; }, false); 它工作正常
也许这是我的误解,但我认为当您创建一个自定义事件,然后创建“带有事件监听器的元素”(监听该事件)时,该事件(本身)会跟踪所有监听器谁在等待事件发生,并且当事件发生时,所有监听器都会自动收到通知。 但是
有没有办法调度所有元素? 例如,我们可以做 window.dispatchEvent(evt),但我想允许所有元素使用该事件。 (对于onclick,我们几乎可以使用所有元素) 最佳答案 var ev
我正在尝试为 WinJS 中的自定义事件编写事件处理程序。我不太确定这在 IE 中是如何工作的 -我正在创建一个自定义事件并发送它 - var eventObject = document.creat
如演示中所示,dispatchEvent 未按预期工作。 http://jsfiddle.net/DerekL/V8uEN/ 关键部分: btn.dispatchEvent( document
当我使用 dispatchEvent 模拟鼠标事件时,事件监听器的调用顺序与实际鼠标事件不同。特别是,某些bubble监听器会在同一目标上的capture监听器之前被调用。 这是一个 fiddle 来
如果我有一个无按钮表单,并且我想测试可能的 onsubmit 函数是否返回 true,然后提交它。这是我当前的代码,效果很好。 var form = document.getElementById('
通常我不会在 SO 中提出这种如此具体的问题,但我已经为这个问题苦苦挣扎了好几天,所以我在这里寻求一些帮助。 我正在构建一个应用程序来自动执行 Web 版 Whatsapp 中的任务 (https:/
在我的代码中我做了:element.onerror = my_function; 我想知道如何强制触发此事件以便我可以对其进行测试? 谁能告诉我如何使用 dispatchEvent 流程来做到这一点?
我正在尝试根据用户操作将字符发送到输入元素。 我正在尝试将 KeyboardEvent 与 dispatchEvent 一起使用,但无论我做什么,它都不起作用 例如: let keyEvent = n
我创建了一个事件,以便可以在事件发生时添加监听器。触发事件的场景会有所不同,因此需要跟踪触发事件的原因并进行适当的处理。但是,我尝试在循环内发生的函数中添加dispatchEvent,但收到 In
我有一个由特定函数触发的自定义事件。 此事件包含一个包含详细信息等的eventArgs。我希望处理程序/监听器能够更改 eventArgs,以便原始函数获得更改后的值。这可能吗? 到目前为止我已经尝试
我有以下代码 http://jsfiddle.net/yc7sj3pt/2/ document.getElementById('obj_one').addEventListener('mouseove
我在表单上有一个提交事件处理程序(以捕获使用 enter 提交表单的人,有时我需要手动触发(由用户点击提交按钮以外的其他内容触发) ,通过 dispatchEvent。 虽然我不希望它实际提交表单,但
当我在输入框上使用 dispatchEvent 触发 focus 事件时,它的 onfocus 被调用,但在 UI 上输入框是不专注。这种行为有什么原因吗? var test = document.g
我对下面的脚本感到困惑: var event = new Event('shazam'); document.body.addEventListener('shazam',function(){
我的要求是将事件从代码触发到父托管组件。 我在这里使用第一个答案作为引用:angular2 manually firing click event on particular element 如果我尝
我是一名优秀的程序员,十分优秀!