J'utilise JQuery pour faire glisser des éléments d'une liste et les déposer sur un autre. Une fois l'élément supprimé, il est supprimé de sa liste d'origine et ajouté à sa liste de destinations.Pourquoi JQuery ajoute-t-il un style à mon élément de liste ajouté?
J'ai utilisé le code ci-dessous et il semble fonctionner parfaitement lors de l'inspection du DOM, mais il ne s'affiche pas correctement sur la page. Habituellement en dehors de la liste et en haut à droite. Ma première supposition est qu'il s'agissait d'un problème de CSS, mais le problème persiste même après la suppression de toutes les feuilles de style.
Une inspection plus approfondie de l'inspecteur Chrome révèle qu'un style en ligne est ajouté à chaque élément de liste. Je ne suis pas certain d'où il provienne.
Voici mon code.
$(function() {
$(".drag").draggable();
$(".drop").each(function (index){
var title = $(this).attr('title');
$(this).droppable({
accept: title,
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
drop: function(event, ui) {
ui.draggable.remove();
$(this).append(ui.draggable);
}
});
});
});
</script>
<ul>
<li class="drag RED">RED</li>
<li class="drag BLUE">BLUE</li>
</ul>
<ul class="drop" title=".RED">
<li>Stuff</li>
</ul>
<ul class="drop" title=".BLUE">
<li>Stuff</li>
</ul>
vous pouvez utiliser jsfiddle, pour montrer cela comme démonstration. –
quel style a été ajouté incorrect? la couleur est-elle passée du jaune au rose? quelle?! qu'attendez-vous et que se passe-t-il? – Reigel
@Reigel Je m'attends à ce que l'élément de liste qui est traîné soit inséré dans la liste dans laquelle il est déplacé. L'inspecteur DOM indique que cela se produit, mais l'élément de liste apparaît en dehors de la liste, c'est-à-dire dans la mauvaise position. – matt