Флажки в jQuery Mobile Scroll View
Есть ли причина, по которой флажки в скрытой части прокручиваемого окна во всплывающем диалоговом окне jQuery Mobile не работают, а просто переходят наверх?
<div data-role="popup" id="chkSelector" data-overlay-theme="a"
data-theme="a" data-dismissible="true">
<div style="width:500px; height:300px; overflow-y:auto;">
<label for="checkbox-1">021669835973</label>
<input name="checkbox-1" id="checkbox-1" type="checkbox">
<label for="checkbox-2">021669835976</label>
<input name="checkbox-2" id="checkbox-2" type="checkbox">
<label for="checkbox-3">021669835983</label>
<input name="checkbox-3" id="checkbox-3" type="checkbox">
<label for="checkbox-4">021669836973</label>
<input name="checkbox-4" id="checkbox-4" type="checkbox">
<label for="checkbox-5">021669837973</label>
<input name="checkbox-5" id="checkbox-5" type="checkbox">
<label for="checkbox-6">021669855973</label>
<input name="checkbox-6" id="checkbox-6" type="checkbox">
<label for="checkbox-7">021669935973</label>
<input name="checkbox-7" id="checkbox-7" type="checkbox">
<label for="checkbox-8">021669835973</label>
<input name="checkbox-8" id="checkbox-8" type="checkbox">
<label for="checkbox-9">021669835976</label>
<input name="checkbox-9" id="checkbox-9" type="checkbox">
<label for="checkbox-10">021669835983</label>
<input name="checkbox-10" id="checkbox-10" type="checkbox">
<label for="checkbox-11">021669836973</label>
<input name="checkbox-11" id="checkbox-11" type="checkbox">
<label for="checkbox-12">021669837973</label>
<input name="checkbox-12" id="checkbox-12" type="checkbox">
<label for="checkbox-13">021669855973</label>
<input name="checkbox-13" id="checkbox-13" type="checkbox">
<label for="checkbox-14">021669935973</label>
<input name="checkbox-14" id="checkbox-14" type="checkbox">
</div>
</div>
Можно выбрать только верхние, не обрезанные ниже высоты окна. Когда нижние из них прокручиваются в поле зрения и выбираются, список просто прокручивается вверх, не выделяя его.
1 ответ
Если вы спрашиваете о причине этого, я считаю, что просто Popups
предназначены не для глубокого тестирования большого количества интерактивного контента, а только для небольших подсказок или небольших навигационных меню. Если вам нужно представить пользователю много интерактивного контента, ИМХО страницу с Dialog
вариант является лучшим выбором. Просто мои два цента.
Если вы затем запрашиваете обходной путь, вот оно. Просто инициализируйте Внешнее Всплывающее окно и используйте его.
$(document).ready(function() {
$("#chkSelector").enhanceWithin().popup();
});
.ui-popup .ui-checkbox {
margin-right: 0.5em !important;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.css">
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<div data-role="page" id="menu">
<div data-role="header" data-position="fixed">
<h1>Header</h1>
</div>
<div data-role="content">
<a href="#chkSelector" class="ui-btn" data-rel="popup">Open Popup</a>
</div>
</div>
<div data-role="popup" id="chkSelector" data-overlay-theme="a" data-theme="a" class="ui-content" data-dismissible="true">
<div style="width:500px; height:300px; overflow-y:auto;">
<label for="checkbox-1">021669835973</label>
<input name="checkbox-1" id="checkbox-1" type="checkbox">
<label for="checkbox-2">021669835976</label>
<input name="checkbox-2" id="checkbox-2" type="checkbox">
<label for="checkbox-3">021669835983</label>
<input name="checkbox-3" id="checkbox-3" type="checkbox">
<label for="checkbox-4">021669836973</label>
<input name="checkbox-4" id="checkbox-4" type="checkbox">
<label for="checkbox-5">021669837973</label>
<input name="checkbox-5" id="checkbox-5" type="checkbox">
<label for="checkbox-6">021669855973</label>
<input name="checkbox-6" id="checkbox-6" type="checkbox">
<label for="checkbox-7">021669935973</label>
<input name="checkbox-7" id="checkbox-7" type="checkbox">
<label for="checkbox-8">021669835973</label>
<input name="checkbox-8" id="checkbox-8" type="checkbox">
<label for="checkbox-9">021669835976</label>
<input name="checkbox-9" id="checkbox-9" type="checkbox">
<label for="checkbox-10">021669835983</label>
<input name="checkbox-10" id="checkbox-10" type="checkbox">
<label for="checkbox-11">021669836973</label>
<input name="checkbox-11" id="checkbox-11" type="checkbox">
<label for="checkbox-12">021669837973</label>
<input name="checkbox-12" id="checkbox-12" type="checkbox">
<label for="checkbox-13">021669855973</label>
<input name="checkbox-13" id="checkbox-13" type="checkbox">
<label for="checkbox-14">021669935973</label>
<input name="checkbox-14" id="checkbox-14" type="checkbox">
</div>
</div>
</body>
</html>