【发布时间】:2014-02-05 21:21:13
【问题描述】:
我正在以编程方式创建 dGrid,并为诸如“.dgrid-row:click”、mouseUtil.enterRow 和 mouseUtil.leaveRow 之类的事件添加侦听器。如果我为单个网格执行此操作,那将很容易做这样的事情来创建监听器并在我完成网格时将其删除。
var clickEvent = dataGrid.on(".dgrid-row:click", gridSelect);
//code
clickEvent.remove();
但是,我在一个循环中创建了几个 dGrid。
for (result in results) {
var dataGrid = new (declare([Grid, Selection, DijitRegistry, ColumnHider]))({
id: "dgrid_" + result.name,
bufferRows: Infinity,
columns: result.columns,
selectionMode: "single",
"class": "resultsGrid"
});
dataGrid.on(".dgrid-row:click", gridSelect);
dataGrid.on(mouseUtil.enterRow, gridEnter);
dataGrid.on(mouseUtil.enterRow, gridEnter);
dataGrid.renderArray(result.data);
}
正在将网格添加到 TabContainer。当我摆脱 TabContainer 时,删除所有侦听器的最佳方法是什么?
【问题讨论】:
标签: javascript dojo dgrid