2010-12-09 10 views
24

kann mir jemand helfen, die jQuery UI wählbar-Bibliothek verwenden, um die folgenden Funktionen auszuführen:mehrere wählt Implementieren mit jQuery UI wählbar

  • erlauben es einem Benutzer mehrere Elemente mit einem Mausklick
  • Abwählen eine Auswahl Element, wenn es bereits mit einem Mausklick ausgewählt wurde

Antwort

53

Dies wird gearbeitet um in another question, aber ich bin reposting hier für jeden, der dies über Google findet. Wenn Sie das Ereignis "mousedown" in jQuery binden und dort den metaKey festlegen (als ob der Benutzer die Taste ctrl/cmd gedrückt hält), wird er beim Aufruf als auswählbar bereits gesetzt.

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

wow, nur eine Zeile Code und voila! Bevor ich diese Frage gepostet habe, habe ich alle Fragen mit dem jquery-ui-selectable Tag durchsucht. Die andere Frage, zu der Sie eine Verbindung haben, hat nicht das jquery-ui-selectable Tag, also sah ich es nie. – HBCondo

+4

Dies funktioniert nicht für mich. Funktioniert das noch für dich? – MikeAlike234

+0

Eric, das ist verdammt gut !!!! – Jobst

0

Haben Sie die demo page for selectable überprüft? Du kannst das schon machen. Um mehrere Objekte auszuwählen, halten Sie einfach die Kontrolle. Dies ist ähnlich wie bei der Arbeit mit Dateien. Ist "Strg + Klick" nicht gut genug?

Demo-Code hier:

<style> 
    #feedback { font-size: 1.4em; } 
    #selectable .ui-selecting { background: #FECA40; } 
    #selectable .ui-selected { background: #F39814; color: white; } 
    #selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; } 
    #selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; } 
    </style> 
    <script> 
    $(function() { 
     $("#selectable").selectable(); 
    }); 
    </script> 

<div class="demo"> 

<ol id="selectable"> 
    <li class="ui-widget-content">Item 1</li> 
    <li class="ui-widget-content">Item 2</li> 
    <li class="ui-widget-content">Item 3</li> 
    <li class="ui-widget-content">Item 4</li> 
    <li class="ui-widget-content">Item 5</li> 
    <li class="ui-widget-content">Item 6</li> 
    <li class="ui-widget-content">Item 7</li> 
</ol> 

</div> 
+3

Meine Anforderungen sind, Multi-Select-Funktionalität nur mit der Maus, keine Tastatur zu implementieren. – HBCondo

+0

@ user327066 - Ich werde es mir beim Mittagessen anschauen, wenn ich einen Moment habe. Ich bin mir ziemlich sicher, dass es geändert werden kann, um zu tun, was Sie tun möchten. – JasCav

+0

danke, ich wollte in meinem ursprünglichen Kommentar sagen, dass Benutzer in der Lage sein sollten, die Maus oder die Tastatur zu verwenden, um mehrere Auswahlen zu treffen. Daher ist es in Ordnung, die Tastaturfunktionen zu erhalten. Wir brauchen nur die selbe Auswahlmöglichkeit mit nur einer Maus. – HBCondo

2

Nicht wählbar verwenden, aber dies wird Ihnen das Verhalten, das Sie mit dem Setup wollen bekommen Sie bereits haben:

statt

$("#selectable").selectable() 

versuchen

$(".ui-widget-content").click(function() { 
    $(this).toggleClass("ui-selected"); 
}); 
+1

ohne Kontext, das ist keine echte Antwort ... nur eine passiv-aggressive Tirade gegen auswählbar - du hättest zumindest ein volles, funktionierendes Beispiel liefern können ... dauert nur 2 Minuten – specializt

0

Verwendung dieser Code ot sein können, hilft Ihnen

$('#selectable').bind("mousedown", function (e) { 
     e.metaKey = true;  
}).selectable('filter : td')​ 

, wenn Sie die auswählbaren auf dem Tisch verwenden für den Einsatz wählbar td ('Filter: td') else

Verwendung wählbar()

Verwandte Themen