我創建了一個事件,以便我可以爲事件發生時添加偵聽器。將會有不同的情景觸發事件,因此會跟蹤觸發事件並正確處理事件的事件。但是,我試圖在一個循環內發生的函數中添加dispatchEvent,並且我收到一個InvalidState錯誤。任何人都在意解釋導致此錯誤的原因以及此處發生的原因。你可以看到下面javascript for循環中的DispatchEvent
//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.
創建一個完整又小例子。你的演示不完整。 – 2015-12-02 20:39:36