incapable d'utiliser jquery DragStop et Redimensionner arrêt des appels d'événements à l'intérieur

StackOverflow https://stackoverflow.com/questions/4155865

  •  08-10-2019
  •  | 
  •  

Question

J'ai une application où je crée divs en faisant glisser à travers une toile. J'ai besoin ces divs être draggable et redimensionnable. Voici ma fonction:

function createDiv( $startX, $startY, $stopX, $stopY ) {
    if ($startX==$stopX || $startY==$stopY)
        return;

    var zona = $('<div class="zona"></div>');
    $(zona).css({position: "absolute", background: "#f81", overflow: "hidden", top: Math.min($startY,$stopY)+"px", left: Math.min($startX, $stopX)+"px",width: Math.abs($stopX-$startX)+"px", height: Math.abs($stopY-$startY)+"px" });
    $("#demo").append(zona);

    $(zona).draggable({
        stop: function(){
            alert("should store dimensions in a form here");
        }
    }).resizable({
        stop: function(){
            alert("should store dimensions in a form here");
        }
    });

    $nr_zone++;
}

Le problème est que, alors que la div sera créé et draggable redimensionnable, le code contenant les fonctions d'arrêt ne fonctionnera pas (à savoir les alertes ne fonctionnera pas).

Si quelqu'un peut repérer le problème que je serai très reconnaissant. Merci.

Était-ce utile?

La solution

Découvert quel était le problème: je dépendais trop sur $nr_zone qui s'incrémente avant que les événements se tirés; Ma solution est de stocker la valeur de $nr_zone dans l'ID de l'élément (STH comme $(zona).attr("id","zona_"+$nr_zone)and remplacer son utilisation dans le code avec $(zona).attr("id").split("_")[1]. S'il y a une solution élégante Moer j'aimerais entendre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top