Question

Je veux être en mesure de changer les paramètres qui sont passés, je peux essentiellement dans le cas de démarrage de l'sélectionnable permettre à mon utilisateur d'utiliser l'effet jQuery UI sélectionnable sans avoir à maintenir enfoncée la touche CTRL.

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 je suis en train d'accomplir ici:

http://jsfiddle.net/josephbulger/ZfevM/

Le problème que je vais avoir, est que lorsque j'ai mis dans la méthode de démarrage des paramètres de l'événement, la méthode d'arrêt ne voit pas les changements que je fais.

Y at-il un moyen d'accomplir ce que je suis en train de faire?

Était-ce utile?

La solution

Vous ne pouvez pas définir les propriétés ici non ... parce que c'est un différent objet event dans la méthode stop. Vous pouvez définir des variables à périmètre supérieur ( comme ça ), mais aucun qui persistera sur l'objet event. Il est pas que ce soit les « compensation » vraiment, c'est juste une fessée marque nouvel objet.


Pour se comportent sélectionnable comme si Ctrl est maintenue enfoncée, se lient à l'événement mousedown il utilise l'avance et définissez la propriété .metaKey sur cette event true, comme ceci:

$("#selectable").bind("mousedown", function(e) {
    e.metaKey = true;
}).selectable();

Vous pouvez le tester ici , souvenez-vous de trouver avant appelant .selectable(), car les gestionnaires d'événements sont exécutés dans l'ordre lié.

Autres conseils

Je l'ai mis à jour le code. Jetez un oeil à cette URL.

http://jsfiddle.net/phoenix_suresh/7f6j5/

Pendant ce temps, je l'ai ajouté attribut ID à

  • articles afin que vous puissiez avoir plus de contrôle sur elle.

        
  • Après avoir trouvé cette réponse que je remarque que vous pouvez utiliser la propriété originalEvent sur l'objet event retourné dans le gestionnaire d'événements start sélectionnable pour définir la propriété ctrlKey true.

    comme ceci:

    $("#selectable").selectable({
        start: function (event, ui) {
            event.originalEvent.ctrlKey = true;
        }
    });
    

    violon

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