Я работаю над следующей функцией, задачей которой является восстановление состояния расширения в сетку кендо.Как видите, функцию можно вызывать много раз.Переменная заполняется, в данном случае «расширенной», во внешнем блоке, который затем используется анонимной функцией, которая назначается событию, которое используется внутри.
Когда эта функция вызывается несколько раз, будет ли переменная «расширенная» перезаписываться каждый раз, когда все экземпляры анонимной функции будут использовать последнее значение, присвоенное «расширенной»?Или выполнение 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);
});
}