2012-11-14 5 views
5

Ich habe vor kurzem aktualisiert jquery ui und seine Autocomplete-Plugin - aber in der neueren Version wird ich nicht die Optionen mit einem Mausklick auswählen und ich muss verwenden die Pfeile nach oben und nach unten. Wie aktiviere ich die Auswahl per Mausklick erneut?Jquery UI Autocomplete erlaubt keine Auswahl von Optionen mehr mit der Maus

Btw die neue Version 1.9.1, alte Version war 1.8.2

+0

Sie können immer noch mit der Maus in UI 1.9.1 auswählen. Versuchen Sie es mit dem folgenden Beispiel: http://jqueryui.com/autocomplete/ Können Sie etwas Code posten? – Elliott

+0

Hallo Elliott - die Demo funktioniert einwandfrei, aber auf den beiden Seiten, auf denen ich das Plugin verwende, kann ich überhaupt nicht mit der Maus auswählen. Muss irgendwo ein Konflikt sein. Wenn ich eine Chance bekomme, werde ich schauen, was es verursacht und als Bug – coalvilledave

+0

Kannst du Code zur Verfügung stellen? – Dom

Antwort

4

die Maus Auswahlfähigkeit In meinem Fall durch eine veraltete Dritte jQuery-Plugin deaktiviert wurde. Dieser Thread gab mir eine Vorstellung davon, was falsch sein könnte: http://forum.jquery.com/topic/autocomplete-click-to-select-item-not-working-in-1-9-1

Ich verwendete eine alte Version von Jquery Validierung Plugin (https://github.com/jzaefferer/jquery-validation). Ich habe ein Plugin nach dem anderen deaktiviert, um zu sehen, welches das Fehlverhalten verursacht hat.

+0

Danke bubblez, das hat es für mich repariert, Sie haben mir Stunden gerettet :) –

+0

Für mich stellte sich heraus, dass es sich um einen Aufruf zum stopPropagation() auf einen Klick im Körper z. $ ("body"). click (function (e) {e.stopPropagation()}; suche Code wie diesen und komm raus stopPropagation(). – Asmussen

+0

Danke, Das hat es behoben –

1

hatte ich das gleiche Problem, auch die neueste Version von jquery-ui, die zum Zeitpunkt 1.11.4

Überprüfung des Quellcodes in Datei mit jquery-ui.js fand ich ein Stück wie folgt aus:

"click .ui-menu-item": function(event) { 
        var target = $(event.target); 
        if (!this.mouseHandled && target.not(".ui-state-disabled").length) { 
         this.select(event); 

         // Only set the mouseHandled flag if the event will bubble, see #9469. 
         if (!event.isPropagationStopped()) { 
          this.mouseHandled = true; 
         } 

das Problem ist die mouseHandled var Set true. Aber es passiert nur, wenn die event Propagierung nicht gestoppt wurde.

So wie die Lösung ich so meine die automatische Vervollständigung definiert:

$('.autocomplete').autocomplete({ 
    source: ['value1','value2','value3','value4'], //my source 
    select: function(event, ui){ 
    event.stopPropagation(); //the select event will work next time you click 
    //your logic comes here ... 
    } 
}) 

Es funktionierte für mich, ich hoffe, es funktioniert für Sie! =)

Verwandte Themen