Я пытаюсь создать шаблон (функцию, которая возвращает строку HTML), которая делает jqGrid в середине. Проблема: jqGrid нужен существующий элемент для работы, но, очевидно, функции в строках выполняются до того, как будет выполнена сама строка (?):
var member_tpl = function(obj){
return '<div class="meta"> \
<div class="left"> \
yada yada \
</div> \
<div id="jqGridHerePlease22"></div> \
'+ createGrid(someObject,"jqGridHerePlease22") +' \
</div><!-- end class meta --> \
';
};
$('.buttonClick').live('click', function(e){
e.preventDefault();
writeTemplate('aDialog', member_tpl);
});
Моя функция createGrid работает. Проблема в том, чтобы попытаться использовать его в строке. По сути, если бы я написал предупреждение со следующим кодом, это не сработало бы, поскольку функция в строке запускалась до того, как была записана строка ... Я думаю:
alert($("member_locations22").value)
Простите, если я где-то пропустил ответ и задаю повторяющийся вопрос. Предложения?
Редактировать: @ Джон Калберер, вот что происходит в функции createGrid:
var createGrid = function(gridData,div){
var details = $.extend({ gridData },default_grid_settings);
var rand = randomNum();
var pager = 'pager'+rand;
var str = '<div id="'+pager+'"></div>';
var grid = $('#'+div).append('<table id="aGrid'+rand+'"></table>'+str).find('#aGrid'+rand);
var grid_args = $.extend({pager: '#'+pager},details);
grid.jqGrid(grid_args); // grid with pager created here
};
Таким образом, все, что создает createGrid, фактически создает сетку.