[JCanvas] annulé l’event click si on utilise l’event draggable
Le truck chiant avec l’option draggable, c’est si on doit utiliser le click. Dès qu’on peut déplacer un élément si on click dessus pour le déplacé le click est aussi déclenché et quand on a aussi besoin du click c’est la merde!!!
Le créateur de la lib aurait du faire un truck qui annule l’event click si on déplace et comme il ne la pas fait on va le faire nous même.
J’ai donc trouvé une solution avec JCanvas on peut stocker des données dans les formes qu’on a à créer. On va donc stocker dans le rectangle ces coordonnées. Puis on va vérifier si ces coordonnées ont changé et si oui on active pas le click:
// Le rectangle 2: canvas.drawRect({ layer: true, // draggable: true, groups: ['menu'], dragGroups: ['menu'], name: 'rectangle2', // fillStyle: '#FF0000', strokeStyle: '#000000', strokeWidth: 5, x: 180, y: 100, width: 0, height: 0, cornerRadius: 10, opacity: 0.5, data: {x: 180, y: 100}, // On stock dans le rectangle ces coordonnées par défauts click: function(layer) { // Position du rectangle: layer_x = layer.x; layer_y = layer.y; // On vérifie si la position a changé: if((layer_x == layer.data.x) && (layer_y == layer.data.y)) { log("Pas de déplacement"); } else { log("Déplacement"); canvas.getLayer('rectangle2').data = {x: layer_x, y: layer_y}; } } });
L’inconvénient de ce genre de code c’est que cela nous oblige a faire les verif nous même à chaque fois et je trouve ça dommage.
Le problème a l’air aussi de se poser avec le click et le double click ou alors ça vient de mon code…
Tous les codes sont testés et sont fonctionnels, si il arrive qu'un de ces codes ne fonctionne pas chez vous, merci de me le signaler.