【发布时间】:2018-12-28 21:56:59
【问题描述】:
我想创建一个简单的日历,它由 7 列(以天为单位)和几行(例如 6 行 - 每行 4 小时)表示。
结果应该是这样的:
monday tuesday wednesday ...
0-4 listItem listItem listItem
4-8 listItem listItem listItem
8-12 listItem listItem listItem
12-16 listItem listItem listItem
...
然后用户应该能够选择几个listItem- 包括“跨天”(通过单击第一个元素并将光标拖动到下一个或上一个)。
我使用来自 jqueryUi 的 selectable - https://jqueryui.com/selectable/#default
但它仅适用于一列中的列表。
我尝试修改代码并将column-count: 2;添加为ol css属性:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Selectable - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
#feedback { font-size: 1.4em; }
#selectable .ui-selecting { background: #FECA40; }
#selectable .ui-selected { background: #F39814; color: white; }
#selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; border: 2px solid black}
ol{
column-count: 2;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#selectable" ).selectable();
} );
</script>
</head>
<body>
<ol id="selectable">
<li class="ui-widget-content">Item 1</li>
<li class="ui-widget-content">Item 2</li>
<li class="ui-widget-content">Item 3</li>
<li class="ui-widget-content">Item 4</li>
<li class="ui-widget-content">Item 5</li>
<li class="ui-widget-content">Item 6</li>
<li class="ui-widget-content">Item 7</li>
</ol>
</body>
</html>
还有一个 grid selectable 列表元素 - https://jqueryui.com/selectable/#display-grid 但顺序不适合我的情况(顺序是按行,而不是按列)。
如何从一个ol 列表创建多个列并在此元素上使用selectable jqueryUi?
【问题讨论】:
标签: javascript jquery html css jquery-ui