2010-10-22 4 views
0

J'ai quelques problèmes avec l'interface utilisateur dragable. Dans certaines conditions, je dois arrêter de glisser. C'est très dynamique. J'essaie de le rendre plus simple.JQuery UI dragable (ne peut pas l'arrêter correctement)

ce que je fais:

drag : (function(e,ui){ 
      if (ui.position.left > 400){// in my example 400 is variable whitch calculates every drag event 
         return false; 
     }    
} 

Mais si je le fais. Quand je retourne faux. Tout glisser est en train de s'arrêter. Et si je veux traîner dans une autre direction, je dois à nouveau faire «mouseup» et «mousedown». Comment puis-je créer un tel comportement sans arrêter la traînée? Merci

Répondre

0

Il n'y a pas de méthode qui annule une seule « glisser », mais vous pouvez définir la position de l'objet à l'aide ui.position

return false 

déclenche une erreur et il ne fonctionne pas efficacement . Le morceau de code suivant a bien fonctionné pour moi.

$('#draggablediv').draggable({ 
     drag: function (event, ui) { 
      if (your_condition) { // for example: ui.position.left < 100 
       ui.position.left = ui.position.left_old 
       ui.position.top = ui.position.top_old 
      } 
      ui.position.left_old = ui.position.left 
      ui.position.top_old = ui.position.top 
     } 
    }) 
Questions connexes