- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个事件,以便可以在事件发生时添加监听器。触发事件的场景会有所不同,因此需要跟踪触发事件的原因并进行适当的处理。但是,我尝试在循环内发生的函数中添加dispatchEvent,但收到 InvalidState 错误。任何人都愿意解释导致此错误的原因以及为什么会在这里发生。你可以在下面看到我的代码
//create event
var event = new Event('tableRowAdded');
//get element reference
var table = document.getElementById('dataTable');
//set model
var model = [{jsonData},{jsonData},{jsonData}];
//validate model and then start creating table
function addRowsToTable(DOMTable, rowData){
//stop execution if rowdata null
if(rowData == null || DOMTable == null){
return;
}
var currentRowCount = DOMTable.rows.length;
//add empty row to table
var tr = DOMTable.insertRow(currentRowCount);
tr.id = "data_row_" + currentRowCount;
//add columns to table
//first cell is used for error data
var td = tr.insertCell(0);
//traineeCode
td = tr.insertCell(1);
td.innerHTML = rowData.TRAINEE_CODE; //this is one of the json keys within the json data
}
function populateTableFromJSON(){
var count = model.length;
//loop over json array to populate table
for(i = 0; i < count; i++){
addRowsToTable(table, model[i]);
//dispatch event occured
table.dispatchEvent(event);
}
}
这是收到的错误
Uncaught InvalidStateError: Failed to execute 'dispatchEvent' on 'EventTarget': The event is already being dispatched.
最佳答案
大概你需要改变:
table.dispatchEvent(event);
至
table.dispatchEvent(new Event('tableRowAdded'));
关于javascript - javascript for 循环中的 DispatchEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052453/
我正在使用 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 如果我尝
我是一名优秀的程序员,十分优秀!