Я пытаюсь сделать инструмент для упрощения работы со сложными сетками из jqGrid , функции, которая могла бы читать схемы сеток, но, похоже, мне не хватает навыков JS для этого)
function renderGridSystemRecursively(scheme, container){
// CHILDREN
if ('children' in scheme && scheme.children.length > 0) {
scheme.prm.gridPrm.subGrid = true
scheme.prm.gridPrm.subGridRowExpanded = function (expandedRowContainer_id, parent_dataitem_id) {
var hiddenAtStart = (scheme.children.length > 1) ? true : false
for (var i in scheme.children) {
var child = scheme.children[i]
if ('scheme' in child) {
// NEXT LINE CAUSES ERROR
// Uncaught TypeError: Object #<an Object> has no method 'createDocumentFragment'
var subcontainer = $('<div style="float: left;"/>',{id:expandedRowContainer_id+'_'+child.subId})
container.append(subcontainer)
child.scheme.hiddengrid = (child.scheme.hiddengrid == undefined) ? hiddenAtStart : child.scheme.hiddengrid
var self = $('#'+subcontainer.attr('id')+'_grid')
child.scheme.prm = child.scheme.prmInit(parent_dataitem_id, self)
child.scheme.prm.navMode = 'subgrid'
renderGridSystemRecursively(child.scheme, subcontainer)
}
}
}
}
//...
renderGrid(scheme.prm, container, scheme.prm.navMode)
}
Определение функции находится в отдельном файле и находится в глобальной области видимости.
Функция вызывается за пределами ready (), но в обработчике событий subGridRowExpanded возникает ошибка, поэтому похоже, что я напутал с замыканиями, не могу понять, как именно.
Я не использую никакую другую библиотеку, кроме jquery.