У меня есть модал, который отображается из шаблона усов, который включает в себя следующий шаблон HTML:
<div class="tab-content flex-full p-0 item-selector-content">
<ul class="list-group with-check item-list flex-full" style="overflow-x:hidden;overflow-y:scroll;">
{{#getCurrentPageData}}
{{>menuChildModel}}
{{/getCurrentPageData}}
</ul>
{{>pagination}}
</div>
, где menuChildModel
определено как следующий частичный шаблон:
<script type=text/template id=menu-child-template>
<li class="list-group-item {{#IsSelectedOnModal}}active{{/IsSelectedOnModal}}" style="display:none;border: 0px;
border-bottom: 1px solid rgba(0, 0, 0, 0.125);padding-top: 0 !important; padding-bottom: 0 !important" data-model='{{.}}'>
<label for=menu-child-model-{{Id}} style="display:block;margin-bottom: 0;padding-top: 0.75rem; padding-bottom: 0.75rem">
{{#DisplayNames}}{{0}}{{/DisplayNames}}
<span class="custom-category-control" style="position:absolute;right:55px;top:-5px;"></span>
<label class="custom-control custom-checkbox mb-2 mr-sm-2 mb-sm-0" style="right:5px;">
<input id=menu-child-model-{{Id}} type="checkbox" class="custom-control-input" {{#IsSelectedOnModal}}checked{{/IsSelectedOnModal}}>
<span class="custom-control-indicator"></span>
</label>
</label>
</li>
</script>
и контроллер разбиения на страницы, который обрабатывает все события в этом режиме (включая элементы управления разбиением на страницы и фильтрацию).Я регистрирую функцию прослушивателя событий change
, которая при вызове (изменяя состояние флажка на .list-group-item
, устанавливает свойство IsSelectedOnModal
данных, использованных для ее визуализации, а затем повторно отображает модальное содержимоеиз шаблона.
Проблема
Эффект таков, что всякий раз, когда я выбираю .list-group-item
, просто нажимая на него, я берусь полностьювернуться к вершине контейнера прокрутки. Есть ли какой-либо чистый способ каким-либо образом сохранить scrollHeight
или сообщить шаблону предыдущее значение scrollHeight
? Я пытаюсь сохранить разделение проблем и шаблон проектирования MVC, так многонасколько возможно, не в состоянии использовать фактическую структуру JS.