Frage

Ich möchte der Benutzer lassen, wählen Sie, wenn die Shift-Taste gehalten wird.

$("#div").selectable({
        start: function(st) {
            $(window).keydown(function(e){
                if(!e.shiftKey){
                    st.stopPropagation();
                }
            });
        });

oder?

War es hilfreich?

Lösung

Sie können Ihren Code viel einfacher durch Verwendung der .shiftKey Eigenschaft verkürzen unten auf der Veranstaltung direkt (auch sie ist in dem mousedown Ereignisse), wie folgt aus:

$("#div").mousedown(function(e){
   if(e.shiftKey) return;
   e.stopImmediatePropagation();
   return false;
}).selectable();

Sie können es hier testen.

Andere Tipps

für diejenigen, die es oder etwas ähnliches benötigen, das für mich gut funktioniert:

    var shift = false;

    $(window).keydown(function(e){
        if(e.shiftKey){
    shift = true;
        }
    })
    .keyup(function(e){
        if(!e.shiftKey){
            shift = false;
        }
    });

    $("#div")
    .mousedown(function(e){
       if(!shift){
         e.stopImmediatePropagation();
         return false;          
       }
    })
    .selectable();
$(window).keydown(function(e){
  if(!e.shiftKey){
     $("#div").selectable({
        start: function(st) {
        st.stopPropagation();
          //your code here
        });

     }
});

Wenn das nicht funktioniert try Verwendung Dokument statt Fenstern oder ‚Körper‘

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