Je souhaite pouvoir modifier les parameters transmis à l’événement de démarrage de la sélection, afin de permettre à mon utilisateur d’utiliser l’effet jQuery UI sélectionnable sans devoir maintenir la touche CTRL enfoncée
JS
$(function() { $( "#selectable" ).bind("mousedown", function(event, ui) { var result = $( "#select-result" ).empty(); event.metaKey = event.ctrlKey = true; }); $( "#selectable" ).selectable(); });
J’ai un violon avec ce que j’essaye d’accomplir ici:
http://jsfiddle.net/josephbulger/ZfevM/
Le problème que j’ai, c’est que lorsque je définis les parameters de l’événement dans la méthode de démarrage, la méthode d’arrêt ne voit pas les modifications que je fais.
Y a-t-il un moyen d’accomplir ce que j’essaie de faire?
Vous ne pouvez pas définir les propriétés ici non … car il s’agit d’un object event
différent dans la méthode stop
. Vous pouvez définir certaines variables dans une scope plus élevée ( comme celle-ci ), mais aucune d’entre elles ne persistera dans l’object event
. Ce n’est pas que cela les “efface” vraiment, c’est juste un nouvel object flambant neuf.
Pour que le comportement sélectionnable se comporte comme si vous mousedown
la touche Ctrl enfoncée, liez-vous à l’ mousedown
événement mousedown
et définissez la propriété .metaKey
sur cet event
sur true
, comme .metaKey
:
$("#selectable").bind("mousedown", function(e) { e.metaKey = true; }).selectable();
Vous pouvez le tester ici , n’oubliez pas de le trouver avant d’ appeler .selectable()
, car les gestionnaires d’événements sont exécutés dans l’ordre lié.
J’ai mis à jour le code. Regardez cette URL.
http://jsfiddle.net/phoenix_suresh/7f6j5/
En attendant, j’ai ajouté l’atsortingbut ID à
Après avoir trouvé cette réponse, j’ai remarqué que vous pouvez utiliser la propriété originalEvent
sur l’object event
renvoyé dans le gestionnaire d’événements start
sélectionnable pour définir la propriété ctrlKey
sur true.
Ainsi:
$("#selectable").selectable({ start: function (event, ui) { event.originalEvent.ctrlKey = true; } });
Travail du violon