2010-09-22 2 views
0

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> 
+0

vous pouvez utiliser jsfiddle, pour montrer cela comme démonstration. –

+0

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

+0

@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

Répondre

0

Voulez-vous dire le style comme

position: relative; left: 151px; top: 32px; 

si oui, cela est de plug-in de l'interface utilisateur jquery, qui dit où est votre élément droped, par rapport au parent.

+0

qu'est-ce qui ne va pas avec 'title =". RED "'? – Reigel

+0

Je ne pense pas que ce soit le problème. Je n'ai aucun style défini. J'ai modifié le script pour supprimer tous les titres et les classes, mais le problème de position reste. – matt

+0

@matt vous n'avez pas le style pour RED, BLUE –

0

J'ai rencontré ce problème lorsque je travaillais avec du code HTML de base et la bibliothèque DragQable jQuery. Cliquez sur here pour un JSFiddle répliquant le problème.

Je ne pouvais résoudre ce problème qu'en utilisant simplement la fonction css() de jQuery pour définir manuellement les valeurs à zéro. par exemple.

$(ui.draggable).css({'left': '0', 'top': '0'}); 

Je vous remercie demander pourquoi ce qui est une bonne question et je ne peux pas répondre mais je pense qu'il serait utile d'aider toute personne qui accède à cette page avec le même problème.

Questions connexes