Frage

Ich mag die Parameter ändern können, die in die auswählbaren die übergeben werden Veranstaltung beginnen, so dass ich im Grunde meiner Benutzer den auswählbaren jQuery UI-Effekt zu verwenden erlauben kann, ohne die STRG-Taste gedrückt halten zu müssen.

JS

$(function() {
$( "#selectable" ).bind("mousedown", function(event, ui) {
    var result = $( "#select-result" ).empty();
    event.metaKey = event.ctrlKey = true;
});
$( "#selectable" ).selectable();
});

Ich habe eine Geige mit dem, was ich versuche, hier zu erreichen:

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

Das Problem, das ich bin, ist, dass, wenn ich die Veranstaltungs-Parameter in den Startverfahren eingestellt ist, wird die Stop-Methode der Änderungen nicht sehen, ich mache.

Gibt es eine Möglichkeit zu erreichen, was ich versuche zu tun?

War es hilfreich?

Lösung

Sie können die Eigenschaften hier nicht nicht gesetzt ... weil es ein andere event Objekt im stop Verfahren. Sie können einige Variablen auf einem höheren Umfang eingestellt ( Beispiel ), aber keine, die fortbestehen auf das event Objekt. Es ist nicht, dass es der „Lichtung“ sie wirklich, es ist nur ein ganz neues Objekt versohlt.


Um die auswählbaren verhalten, als ob Strg gedrückt gehalten wird, binden an die mousedown Ereignis nutzt vor der Zeit und stellen Sie die .metaKey Eigenschaft auf, dass event true, wie folgt aus:

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

Sie können es testen hier aus, denken Sie daran zu finden, bevor Aufruf .selectable(), da gebunden Event-Handler ausgeführt werden in der Reihenfolge.

Andere Tipps

Ich habe den Code aktualisiert. Werfen Sie einen Blick auf diese URL.

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

Inzwischen habe ich hinzugefügt ID-Attribut

  • Elemente, so dass Sie mehr Kontrolle über sie haben.

        
  • Nachdem diese Antwort zu finden, bemerkte ich, dass Sie die originalEvent Eigenschaft auf dem event Objekt verwenden können, in dem auswählbaren start Ereignishandler zurückgegeben die ctrlKey Eigenschaft auf true zu setzen.

    Wie so:

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

    Geige

    Lizenziert unter: CC-BY-SA mit Zuschreibung
    Nicht verbunden mit StackOverflow
    scroll top