Je rencontre un problème lié jQuery draggable et droppable. Voici une description de ce que je veux faire.jQuery Rétablissable basé sur la condition
Première: J'ai deux divs. L'un est <div id="selected">
et l'autre est <div id="container">
. "container" a 10 <li>
qui sont déplaçables et droppables dans "selected". Voici le code:
<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>
Deuxième: Je veux permettre à tous les 5 <li>
s de "conteneur" à "sélectionné" div. Si quelqu'un essaie d'ajouter le 6ème <li>
, il ne doit pas autoriser l'utilisateur à le faire. C'est le 6ème <li>
qui va être inséré dans "selected" doit être rétabli en utilisant jQuery draggable option revert.
c'est-à-dire $("#container li").draggable({ revert: true });
Voici le code javascript pour cela.
$(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
}
}
});
});
Cela fonctionne très bien.
Troisième: Mais quand je fais glisser un <li>
de « sélectionné » pour « conteneur », le « sélectionné » div aura seulement 4 <li>
s. Donc, dans cette situation, plus tard, l'utilisateur devrait être en mesure d'ajouter un autre <li>
dans div "selected" de div "conteneur". Mais malheureusement, cela ne fonctionne pas. Tous les <li>
s que j'essaie de faire glisser et déposer dans "selected" sont en cours de restauration en raison de la condition if (total >= 5)
.
Quelqu'un peut-il m'aider à résoudre ce problème en utilisant l'option draggable revert? S'il vous plaît ...
@Nick Craver: Oui, ça marche. Ici, le nouveau problème est que je peux voir que je suis glisser l'élément LI de "conteneur" à "sélectionné". Mais en faisant glisser LI de selected vers container, il semble que cet élément ne soit pas déplacé. Mais à la fin, je peux voir que LI est déplacé de sélectionné à conteneur. Y at-il une solution pour voir l'effet de traînée tout en faisant glisser de sélectionné à conteneur? – gautamlakum
@ lakum4stackof - vous devriez obtenir l'effet, êtes-vous toujours en train d'ajouter/de supprimer des draggable n'importe où? –
@Nick Craver - Je ne vois pas l'effet de traînée lorsque je fais glisser de retour sélectionné à conteneur div. Mais à la fin, en conséquence, je suis passé LI de div divisée en conteneur div et le LI est ajouté à la fin de la liste LI à chaque fois. – gautamlakum