Domanda

Voglio essere in grado di modificare i parametri che vengono passati nei del selezionabili inizio dell'evento, in modo da poter praticamente permettere che il mio all'utente di utilizzare il selezionabile effetto jQuery UI senza dover tenere premuto il tasto CTRL.

JS

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

Ho un violino con quello che sto cercando di realizzare qui:

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

Il problema che sto avendo, è che quando ho impostato i parametri della manifestazione nel metodo di avvio, il metodo di arresto non è vedere i cambiamenti che sto facendo.

C'è un modo per ottenere quello che sto cercando di fare?

È stato utile?

Soluzione

Non è possibile impostare le proprietà qui no ... perché è un diverso oggetto event nel metodo stop. È possibile impostare alcune variabili in un ambito più elevato ( come questo ), ma nessuno che persisterà su l'oggetto event. Non è che si tratta di "compensazione" loro realmente, è solo una zecca nuovo oggetto.


Per rendere la si comportano come se selezionabile Ctrl viene tenuto premuto, si legano alla manifestazione mousedown utilizza anticipo e impostare la proprietà .metaKey su quel event per true, in questo modo:

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

È possibile verificare il lavoro svolto qui , ricordatevi di trovare prima chiamando .selectable(), dal momento che i gestori di eventi vengono eseguiti nell'ordine bound.

Altri suggerimenti

Ho aggiornato il codice. Date un'occhiata a questo URL.

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

attributo ID Nel frattempo, ho aggiunto a

  • elementi in modo che si può avere un maggiore controllo su di esso.

        
  • Dopo aver trovato questa risposta ho notato che è possibile utilizzare la proprietà originalEvent sull'oggetto event restituito nel gestore di eventi start selezionabili per impostare la proprietà ctrlKey su true.

    In questo modo:

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

    violino

    Autorizzato sotto: CC-BY-SA insieme a attribuzione
    Non affiliato a StackOverflow
    scroll top