我正在研究以下功能,其工作是将扩展状态恢复到剑道网格。如您所见,该函数可以被多次调用。在外部块中填充变量,在本例中为“扩展”,然后由分配给在其中使用的事件的匿名函数使用。
当多次调用此函数时,变量“expanded”是否每次都会被覆盖,从而导致匿名函数的所有实例都使用最后一个赋予“expanded”的值?或者运行“saveExpansion”是否保留自己的实例?
function saveExpansions(gridname) {
var grid = $("#"+gridname).data("kendoGrid");
var expanded = $.map(grid.tbody.children(":has(> .k-hierarchy-cell .k-i-collapse)"), function (row) {
return $(row).data("uid");
});
// Re-expand (might need to switch to a better event rather than waiting)
grid.one("dataBound", function () {
rowsToExpand = grid.tbody.children().filter(function (idx, row) {
return $.inArray($(row).data("uid"), expanded) >= 0;
});
grid.expandRow(rowsToExpand);
});
}
每次调用saveExpansions()
都会有自己的扩展实例。
您可以在此处查看有关函数闭包的更多信息
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句