JQWidgets之jqxgrid中的事件处理
Event handling in jqxgrid of JQWidgets
我在我的小部件中使用 jqxGrid ,有一个下拉菜单,通过它一次又一次地加载 JqxGrid,
我已将单元格单击事件附加到网格,问题是每次加载网格时,单元格单击事件都会被调用多次。例如,最初,加载单元点击将被调用一次,但如果再次从下拉列表加载网格,单元点击将被调用两次,然后再次调用三次..
我附上了示例 fiddle,每次我点击单元格点击按钮时,网格点击事件都会被加起来。我正在控制台中打印测试消息。
$('#jqxgrid').on('cellclick', function (event) {});
请参阅 fiddle 此处 FIDDLE SAMPLE
谢谢
在您的代码中,每次加载数据时都会重新创建网格。您应该只创建一次,当您加载数据时,只需更新 source.data 然后在网格上调用 updatebounddata。由于您每次都重新创建网格,然后创建事件处理程序,因此处理程序只是堆积起来。
参见:http://jsfiddle.net/HB3Cb/96/
我将源、dataAdapter 和网格的创建移到了 init 函数中,并公开了 init 和 updateData 处理程序:
return {
init: init,
updateData: updateData
}
如果您检查控制台,您会发现无论您重新加载数据多少次,每次点击处理程序只会触发一次。
我在我的小部件中使用 jqxGrid ,有一个下拉菜单,通过它一次又一次地加载 JqxGrid, 我已将单元格单击事件附加到网格,问题是每次加载网格时,单元格单击事件都会被调用多次。例如,最初,加载单元点击将被调用一次,但如果再次从下拉列表加载网格,单元点击将被调用两次,然后再次调用三次..
我附上了示例 fiddle,每次我点击单元格点击按钮时,网格点击事件都会被加起来。我正在控制台中打印测试消息。
$('#jqxgrid').on('cellclick', function (event) {});
请参阅 fiddle 此处 FIDDLE SAMPLE
谢谢
在您的代码中,每次加载数据时都会重新创建网格。您应该只创建一次,当您加载数据时,只需更新 source.data 然后在网格上调用 updatebounddata。由于您每次都重新创建网格,然后创建事件处理程序,因此处理程序只是堆积起来。
参见:http://jsfiddle.net/HB3Cb/96/
我将源、dataAdapter 和网格的创建移到了 init 函数中,并公开了 init 和 updateData 处理程序:
return {
init: init,
updateData: updateData
}
如果您检查控制台,您会发现无论您重新加载数据多少次,每次点击处理程序只会触发一次。