У меня есть проблема, связанная с jQuery, перетаскиваемым и сбрасываемым. Вот описание чего-то, что я хочу сделать.
Первый: У меня есть два деления. Один - <div id="selected">
, а другой - <div id="container">
. «Контейнер» имеет 10 <li>
, которые можно перетаскивать в «выбранный». Вот код:
<div id="selected">
<ul class="sortable-list">
</ul>
</div>
<div id="container">
<ul class="sortable-list">
<li>1</li>
<li>2</li>
<li>....</li>
<li>9</li>
<li>10</li>
</ul>
</div>
Секунда: Я хочу разрешить любые 5 <li>
s от "контейнера" до "выбранного" div. Если кто-то пытается добавить 6-й <li>
, он не должен допускать к нему пользователя. То есть 6-й <li>
, который будет вставлен в «выбранный», должен быть возвращен с помощью перетаскиваемой опции jQuery revert .
т.е. $("#container li").draggable({ revert: true });
Вот код JavaScript для этого.
$(document).ready(function(){
var total = 0;
$("#selected").droppable({
drop: function() {
total = $("#selected li").length;
//alert(total);
if (total >= 5) {
$("#container li").draggable({ revert: true });
} else {
// below code is not working
$("#container li").draggable({ revert: false }); // this is making whole feature weird. I can drag all the <li> anywhere
}
}
});
});
Работает нормально.
Третье: Но когда я перетаскиваю <li>
из «выбранного» в «контейнер», у «выбранного» элемента div будет только 4 <li>
с. Таким образом, в этой ситуации позже пользователь сможет добавить еще один <li>
в «выбранный» div из «контейнерного» div. Но, к сожалению, это не работает. Все <li>
s, которые я пытаюсь перетащить в «выбранные», возвращаются из-за условия if (total >= 5 )
.
Может кто-нибудь помочь мне решить эту проблему с помощью опции draggable revert ? Пожалуйста ...