3
我想(通過鍵盤操作員)在無序列表中選擇多個項目,並使用jQuery Sortable將它們拖到同一列表中的另一個點。jQuery UI可排序:多項選擇
我想(通過鍵盤操作員)在無序列表中選擇多個項目,並使用jQuery Sortable將它們拖到同一列表中的另一個點。jQuery UI可排序:多項選擇
$(function() {
$('ul').on('click', 'li', function() {
$(this).toggleClass('selected');
});
$("ul").sortable({
revert: true,
helper: function(e, item) {
if (!item.hasClass('selected')) item.addClass('selected');
var elements = $('.selected').not('.ui-sortable-placeholder').clone();
var helper = $('<ul/>');
item.siblings('.selected').addClass('hidden');
return helper.append(elements);
},
start: function(e, ui) {
var elements = ui.item.siblings('.selected.hidden').not('.ui-sortable-placeholder');
ui.item.data('items', elements);
var len = ui.helper.children().length;
var height = ui.item.height() + 5;
ui.helper.height((len * height))
ui.placeholder.height((len * height))
},
receive: function(e, ui) {
ui.item.before(ui.item.data('items'));
},
stop: function(e, ui) {
ui.item.siblings('.selected').removeClass('hidden');
$('.selected').removeClass('selected');
}
});
});
* {
margin: 0;
padding: 0;
}
#sortable {
width: 300px;
padding: 5px;
margin-right: 100px;
background: #eee;
border: 1px solid black;
}
ul li {
width: 250px;
margin: 5px;
padding: 5px;
font-size: 1.2em;
cursor: move;
background-color: white;
list-style-type: none;
}
.selected {
background: red !important;
}
.hidden {
display: none !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<ul id="sortable">
<li>Item #1</li>
<li>Item #2</li>
<li>Item #3</li>
<li>Item #4</li>
<li>Item #5</li>
</ul>
(通過點擊演示他們每個人選擇多個項目)
這種方法沒問題,但是當我測試d時在多個可排序區域之間進行項目排序我在使用隱藏類時遇到了問題,所以我使用'hide()'方法修正了問題。實際上,可排序使用隱藏而不是隱藏類,所以最好使用相同的隱藏類。 – p1nox 2015-08-26 23:47:31
http://keithcirkel.co.uk/jwerty/ – 2013-11-16 08:23:08