私はしばらく時間があったので、これを行う方法の基本的な例があります。
実施例:https://jsfiddle.net/Twisty/wmjt1v7s/
HTML
<div class="ui-widget">
<div class="ui-widget-header">Times</div>
<ol id="select-times" class="ui-widget-content">
<li class="ui-widget-content">01:00</li>
<li class="ui-widget-content">02:00</li>
<li class="ui-widget-content">03:00</li>
<li class="ui-widget-content">04:00</li>
<li class="ui-widget-content">05:00</li>
<li class="ui-widget-content">06:00</li>
<li class="ui-widget-content">07:00</li>
<li class="ui-widget-content">08:00</li>
<li class="ui-widget-content">09:00</li>
<li class="ui-widget-content">10:00</li>
<li class="ui-widget-content">11:00</li>
<li class="ui-widget-content">12:00</li>
<li class="ui-widget-content">13:00</li>
<li class="ui-widget-content">14:00</li>
<li class="ui-widget-content">15:00</li>
<li class="ui-widget-content">16:00</li>
<li class="ui-widget-content">17:00</li>
<li class="ui-widget-content">18:00</li>
<li class="ui-widget-content">19:00</li>
<li class="ui-widget-content">20:00</li>
<li class="ui-widget-content">21:00</li>
<li class="ui-widget-content">22:00</li>
<li class="ui-widget-content">23:00</li>
<li class="ui-widget-content">24:00</li>
</ol>
<div class="ui-widget-header">Schedules</div>
<ol id="schedules" class="ui-widget-content">
<li class="ui-widget-content">
<label>April</label>
<div class="drop-times">
</div>
</li>
<li class="ui-widget-content">
<label>Linda</label>
<div class="drop-times">
</div>
</li>
<li class="ui-widget-content">
<label>Barry</label>
<div class="drop-times">
</div>
</li>
<li class="ui-widget-content">
<label>Ellen</label>
<div class="drop-times">
</div>
</li>
</ol>
</div>
CSS
#feedback {
font-size: 1.4em;
}
#select-times .ui-selecting {
background: #FECA40;
}
#select-times .ui-selected {
background: #F39814;
color: white;
}
#select-times {
list-style-type: none;
margin: 0;
padding: 8px 12px;
}
.group-times {
border: 1px dashed #ccc;
background: #fff;
font-size: 1.25em;
padding: 2px;
}
#schedules {
list-style-type: none;
margin: 0;
padding: 0;
}
#schedules label {
display: inline-block;
float: left;
margin-top: .5em;
margin-left: 4px;
width: 56px;
}
#schedules .drop-times {
display: block;
border: 1px dashed #ccc;
width: 75%;
height: 2em;
margin: 4px;
margin-left: 60px;
}
#select-times li {
display: inline-block;
margin: 3px 4px;
padding: 2px;
font-size: 1.25em;
width: 60px;
text-align: center;
}
はJavaScript
$(function() {
var selected = [];
$("#select-times > li").draggable({
helper: function() {
var $group = $("<div>", {
class: "group-times"
});
if (selected.length) {
$group.html(selected.join(", "));
console.log("Helper: ", $group);
} else {
$group.html($(this).text());
}
return $group;
}
});
$("#select-times").selectable({
selected: function(e, ui) {
$(ui.selected).each(function() {
selected.push($(this).text());
});
}
});
$(".drop-times").droppable({
drop: function(e, ui) {
$(this).html($(ui.helper).text());
$(ui.helper).remove();
$(".ui-selected").removeClass("ui-selected");
}
});
});
基本的に、各リストアイテムはドラッグ可能です。 1つのドラッグされたアイテムの時間または選択されたアイテムを含むヘルパーを作成します。これはスケジュール内のスロットにドラッグされます。
いくつかのコードを共有し、これまでに何を試しましたか? –
ようこそスタックオーバーフロー。選択可能でドラッグ可能でも可能です。あなたの投稿を編集し、これまでに試したことを含めてください。 – Twisty