J'ai un problème lié jQuery draggable et droppable. Voici une description de ce que je veux faire.jQuery draggable et le numéro de dépôt
Première: J'ai deux divs. L'un est <div id="selected">
et l'autre est <div id="container">
. "conteneur" a 30 <li>
qui sont déplaçables et droppable dans "sélectionné". 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>29</li>
<li>30</li>
</ul>
</div>
Deuxième: Je veux permettre à tous les 10 <li>
s de "conteneur" à "sélectionné" div. Si quelqu'un essaie d'ajouter le 11ème <li>
, il ne doit pas autoriser l'utilisateur à le faire. C'est le 11ème <li>
qui va être inséré dans "selected" qui doit être annulé en utilisant l'option jQuery draggable 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 >= 10) {
$("#container li").draggable({ revert: true });
} else {
//$("#container li").draggable({ revert: false });
}
}
});
});
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 9 <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 >= 10)
.
Quelqu'un peut-il m'aider à résoudre ce problème? S'il vous plaît ...
Hey man, ce qui est grand. Vraiment génial. Merci. – gautamlakum
J'ai un problème avec ça. Quand j'essaie d'ajouter 11ème élément li dans selected, il fait de l'espace pour 11th li et ensuite après il renvoie à conteneur div. Donc, il semble que cela permet d'ajouter 11 li. Alors que devrions-nous faire ici. En utilisant revert, il n'autorise pas l'espace pour ajouter 11ème élément li.Mais d'une manière ou d'une autre, ça devient bizarre après l'ajout de selected à div conteneur. – gautamlakum
Vous avez différentes options. Par exemple, vous pouvez ajouter une classe à #selected si elle contient 10 li-elements. Cette classe peut être utilisée pour éviter que l'espace réservé ne prenne de l'espace (la classe de l'espace que vous voyez est "ui-classable-placeholder"). Bien sûr, vous devez supprimer cette classe, si moins de 10 li sont trouvés. –