【发布时间】:2017-04-18 01:38:02
【问题描述】:
我创建了一个事件,以便在事件发生时添加侦听器。将有不同的场景触发事件,因此将跟踪触发事件的原因并适当地处理它。但是,我尝试在循环中发生的函数中添加 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);
}
}
这是收到的错误
未捕获的 InvalidStateError:无法在“EventTarget”上执行“dispatchEvent”:该事件已被调度。
【问题讨论】:
-
创建一个完整但最小的示例。您的演示尚未完成。
标签: javascript html