Код, указанный ниже, должен делать то, что вы хотите. Я позаимствовал макет HTML с сайта jquery , а затем добавил нужные вам функции. Есть несколько шагов, чтобы заставить его работать.
- Я соединил две колонки с помощью опции
connectWith
.
- Я добавил код, который прослушивает
sortreceive()
, который срабатывает только при перемещении li из одного столбца в другой. Я установил переменную, чтобы я мог сказать, когда sortstop()
срабатывает, нахожусь ли я в новом столбце или нет.
- Затем, в зависимости от того, из какого столбца пришел li, я удаляю исходный класс и добавляю класс нового столбца.
</p>
<pre><code> <style type="text/css">
#sortable1, #sortable2 { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; }
#sortable1 li, #sortable2 li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px; }
.ui-state-default { background-color: #ccc;}
.ui-state-highlight { background-color: #fff;}
</style>
<script type="text/javascript">
var list;
$(function() {
$('#sortable1').sortable({
connectWith: '#sortable2'
}).disableSelection();
$('#sortable2').sortable({
connectWith: '#sortable1'
}).disableSelection();
$('#sortable1').bind('sortreceive', function(event, ui) {
list = "different";
});
$('#sortable2').bind('sortreceive', function(event, ui) {
list = "different";
});
$('#sortable2').bind('sortchange', function(event, ui) {
list = "same";
});
$('#sortable1').bind('sortchange', function(event, ui) {
list = "same";
});
$('#sortable1').bind('sortstop', function(event, ui) {
if(list == "different") {
$('#'+ui.item[0].id).removeClass("ui-state-default");
$('#'+ui.item[0].id).addClass("ui-state-highlight");
}
list = "";
});
$('#sortable2').bind('sortstop', function(event, ui) {
if(list == "different") {
$('#'+ui.item[0].id).removeClass("ui-state-highlight");
$('#'+ui.item[0].id).addClass("ui-state-default");
}
list = "";
});
});
</script>
<div class="demo">
<ul id="sortable1" class="connectedSortable">
<li id="li1" class="ui-state-default">Item 1</li>
<li id="li2" class="ui-state-default">Item 2</li>
<li id="li3" class="ui-state-default">Item 3</li>
<li id="li4" class="ui-state-default">Item 4</li>
<li id="li5" class="ui-state-default">Item 5</li>
</ul>
<ul id="sortable2" class="connectedSortable">
<li id="li6" class="ui-state-highlight">Item 6</li>
<li id="li7" class="ui-state-highlight">Item 7</li>
<li id="li8" class="ui-state-highlight">Item 8</li>
<li id="li9" class="ui-state-highlight">Item 9</li>
<li id="li10" class="ui-state-highlight">Item 10</li>
</ul>
</div>