Мне нужно отобразить элементы данных в столбцах, но я не могу использовать таблицу (столбцы не имеют одинаковое количество элементов).
Я начал со следующего шаблона jQuery:
<div id="my-jq-tpl" style="display:none;">
{{if is_first}}
colstart <div style="width: 42px;float:left;">
{{/if}}
<div style="width: 40px;">
${cell_item}
</div>
{{if is_last}}
</div> colend
{{/if}}
</div>
Проблема в том, что он всегда закрывает первый div в конце визуализированного HTML, а не только когда is_last = true.
Теперь отображается следующее:
colstart
<div style="width: 42px;float:left;">
<div> 1A </div>
</div>
<div> 1B </div>
colend
colstart
<div style="width: 42px;float:left;">
<div> 2A </div>
</div>
<div> 2B </div>
colend
Но я ожидал, что это сгенерирует следующее:
colstart
<div style="width: 42px;float:left;">
<div> 1A </div>
<div> 1B </div>
</div>
colend
colstart
<div style="width: 42px;float:left;">
<div> 2A </div>
<div> 2B </div>
</div>
colend
Из выходных данных видно, что «colstart» и «colend» были размещены правильно, поэтому данные, передаваемые в шаблон, в порядке и логика верна.
Но проблема в том, что внешний div закрывается сразу после первого элемента в столбце, а не после последнего. Я думаю, jQuery закрывает внешний DIV, потому что он не видит, будет ли он закрыт позже, чтобы не оставлять его открытым и, таким образом, создавать недопустимый HTML.
Можно ли как-то исправить это и получить необходимое поведение?