2009-11-29 4 views
0

Ok. Je vais donc sortir d'une situation et supposer qu'un événement «start» de draggables se déclenche à nouveau après que le mouvement s'est arrêté et que l'utilisateur a recommencé à bouger, même s'il n'a pas encore été abandonné?dragStart sur draggables appelé à plusieurs reprises jquery?

Le problème principal est que je veux que mon draggable crée mes droppables en fonction d'une classe impaire ou paire.

Mais j'ai peur que l'utilisateur commence à glisser, arrêter, recommencer à faire glisser sans relâcher le bouton de la souris qui pourrait relier les droppables. Y a-t-il un moyen d'attraper seulement l'événement de début de drag une fois?

Répondre

3

Votre hypothèse est fausse. L'événement dragstart tirera une seule fois. Exactement quand l'utilisateur commence le glisser. Cela n'a pas d'importance s'il arrête le mouvement de déplacement pendant quelques secondes puis redémarre en déplaçant la souris. Tant qu'il ne lâche pas le draggable, puis clique sur un objet déplaçable, l'événement ne se déclenche plus.

L'événement qui se déclenche pendant que l'utilisateur déplace le fichier déplaçable est l'événement drag. Cela se déclenche lorsque la souris est déplacée en faisant glisser.

0

alors cela signifie que je peux créer mes droppables en fonction de l'élément qui est déplacé, mais quand j'essaye ceci sur l'événement de début, cela ne semble pas fonctionner?

$("#theSchedule, #theExtras").live('mouseover', function() { 
    $(".curSelected").draggable({ 
      helper: 'clone', 
      opacity: 0.50, 
      appendTo: 'body', 
      zIndex: 4, 
      addClasses: false, 
      start: createDrops, 
      stop: tooltip 
     }); 
    }).live('mouseout', function (e) { 
     $(".curSelected").draggable('destroy'); 
    }); 

function createDrops(ev, ui){ 
    disableTip(); 
     if($(ui.helper).hasClass("even")){ 
     $(".even, .evenExtra").droppable({ 
     accept: ".curSelected", 
     addClasses: false, 
     hoverClass: 'dropHover', 
     drop: moveJob 
     }); 
    } else { 
     $(".odd, .oddExtra").droppable({ 
     accept: ".curSelected", 
     addClasses: false, 
     hoverClass: 'dropHover', 
     drop: moveJob 
     }); 
    } 

} 
+0

Ceci est une autre question différente mlebrun. – jvenema

+0

bon point je vais le déplacer. – mlebrun15

+0

lien vers une nouvelle question? –

Questions connexes