jQuery autocomplete-Maus Wahl, feuert das blur-Ereignis
Nutze ich die jQuery-UI -.autocomplete()
, die ich wirklich Liebe. Ich habe ein großen problem was ich nicht lösen kann.
Geben, wenn ich einen Brief, sagen s, und stackoverflow erscheint in der drop-down-Menü, und ich wählen Sie mit der Maus stackoverflow, dann wird die Eingabe-box verliert vorübergehend den Fokus, die bewirkt, dass die onblur
Ereignis genannt zu werden.
Obwohl technisch ist das Feld Eingang blur
ed, wenn ich auf, das geht gegen die usability intuition. Wie kann ich dieses Problem beheben ärgerliche Verhalten?
- Können Sie post-Codes? Dies ist nicht die Standard-Funktionalität von .autocomplete() aus meiner Erfahrung. Sie sollten nicht verlieren Fokus, wenn Sie mit Hilfe der Pfeiltasten.
- Sie haben mich mißverstanden. Die Pfeiltasten funktionieren. Es ist, wenn ich mit der Eingabe beginnen, und dann verwenden Sie die Maus und klicken Sie auf meine Wahl, dass es verwischt.
- Oh sorry, habe ich falsch verstanden, die. Welches Verhalten hat der blur-Ereignis-Ursache, die Sie möchten, um zu verhindern, dass? Nur versuchen zu verstehen, genau das Verhalten, das Sie möchten.
- Ich bin der Gestaltung einer kleinen quizz. Das blur-Ereignis ändert den hintergrund auf die Eingabe-Taste, um entweder grün oder rot, je nachdem, ob der Benutzer die Antwort richtig oder falsch ist, beziehungsweise. Die Korrektur feuert sofort, wenn der Eingang unscharf.
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie versuchen, mit der jQuery-UI-autocomplete-open-und close-Ereignis zu Steuern, Ihre textbox ist blur-event. Wenn der AutoVervollständigen geöffnet ist, deaktivieren Sie den blur-event und wenn es in der Nähe aktivieren Sie Ihre blur-Ereignis wieder. Ich habe setup ein Beispiel an jsfiddle.net. Hoffe, es hilft.
was haben Sie in Ihrem blur-event? Es ist eine Art hacky-aber könnten Sie tun, ein setTimeout mit einer relativ kurzen Verzögerung für Ihre blur-handler. Dann können Sie eine variable in der AutoVervollständigen-Fokus-event-handler und erzählen Sie Ihren blur-handler nicht ausgelöst.
Während drzone88 Antwort oben funktioniert Super, es gibt eine Kante Fall, dass ich stolperte auf welche aufgerufen werden soll: bei der Suche und keine Ergebnisse angezeigt werden, das close-Ereignis wird nicht aufgerufen. Dann ist dein blur-Funktion wird auch nie aufgerufen werden. Also ließ ich mich mit dem setzen der Flagge, wenn Inhalt leer ist.
Meine Lösung nutzt auch jquery.Daten (), so dass wir nicht haben, um ziehen Sie eine variable um:
Wie es sich herausstellt, obwohl, aufgrund der Reihenfolge, in der Ereignisse genannt und das, was ich eigentlich tun musste (Feuer etwas auf Unschärfe beim Benutzer, wobei das Feld ohne eine option in der Vorschlagsliste), landete ich meine Einstellung noblur flag auf "true" zu Beginn der Funktion wählen und wieder auf " false am Ende der Unschärfe, etwa so:
Hoffe dies kann jemand helfen!