Jquery UI Umschaltfläche (Kontrollkästchen) Klick / Drag Bug

8

Ich poste dies zusammen mit der besten Antwort, die ich mir ausgedacht habe. Ich habe keine ähnlichen Fragen gefunden, also hier.

Wenn eine Eingabe des Typ-Kontrollkästchens in eine jquery-ui-Schaltfläche konvertiert wird, habe ich beobachtet, wie andere ), dass es nur einen Klick registriert, wenn die Maus beim Klicken ganz ruhig gehalten wird. Jede Bewegung was auch immer und nichts passiert. Für den Benutzer kann dies nur als unzuverlässiges Verhalten wahrgenommen werden.

Wie arbeiten andere mit diesem Verhalten (beobachtet mit jquery 1.6.3 / jquery ui 1.8.16 in chrome 14 und ie 8)? Gibt es etwas Offensichtliches, das ich vermisse, da ich so weit gehen muss, um das erwartete Verhalten zu bekommen?

    
LOAS 07.10.2011, 12:49
quelle

6 Antworten

7

Ich hatte die Idee für diese Problemumgehung von einem Problembericht auf der jquery ui-Seite, die oben verlinkt war, aber es brauchte ein bisschen Arbeit: jfiddle

Ich füge einen Klick-Listener an das Label an und handle selbst mit der Statusänderung. Ich fand es auch notwendig, die Textauswahl auf der Umschaltfläche zu verhindern. Dies ist mit CSS getan (gefunden, dass anderswo auf SO)

%Vor%

Vielleicht kann dies die nächste Person speichern, die mit der Umschalttaste einige Zeit und Trauer verwenden möchte. Wenn jemand eine bessere / sauberere Lösung hat, bin ich sehr interessiert!

    
LOAS 10.10.2011, 08:42
quelle
1

Alte Frage, aber ich dachte nur, ich würde dies posten, da ich die gleiche Frage hatte und mich hierher begab - Nach dem Verhalten der jQuery-UI-Schaltflächen zu urteilen, die in der Demo hier gezeigt wurden Ссылка mit Firefox, scheint in v1.10.4 behoben worden zu sein. Hier ist das Bugticket - Ссылка . Und hier ist das Changelog für v1.10.4 - Ссылка

  

Fixed: Optionsfeld & amp; Kontrollkästchen ignorieren Mausklicks für kleine Mausbewegungen. (# 7665, 52e0f76)

Es besteht immer noch die Frage, ob das Klickereignis nicht ausgelöst wird.

    
mikato 22.04.2014 14:10
quelle
0

Tatsächlich gibt es einen Fehler in 1.8.13 und früheren Versionen. Wenn Sie auf eine Schaltfläche klicken und den Mauszeiger bewegen / ziehen, erhält eine Schaltfläche visuell einen ausgewählten Status, das darunter liegende Kontrollkästchen / Radio ist jedoch nicht ausgewählt. Folglich sind die an den Server gesendeten Formulardaten nicht konsistent mit dem, was der Benutzer sieht.

Ab Version 1.8.14 ist dieser Fehler behoben. Der Nachteil ist, dass Sie Ihre Maus ruhig halten müssen. Denken Sie daran, wenn Sie sich dafür entscheiden, eine ältere Version von jquery-ui zu verwenden.

    
Michal B. 13.10.2011 12:51
quelle
0

Ich weiß, dass dies eine wirklich alte Frage ist und seitdem behoben wurde, aber ich fand, dass dies die einzige Lösung war, die für mich funktionierte:

Ссылка

Hoffentlich wird jQuery das aktuelle Problem bald beheben.

    
aohm1989 26.03.2013 19:47
quelle
0

Ich habe eine ähnliche Situation mit dem Bootstrap-Framework, und die Lösung, die ich gefunden habe, ist überhaupt nicht hübsch, aber es macht den Trick für mich.

Ich muss zu jedem beteiligten Element den folgenden Code manuell hinzufügen:

%Vor%

Beispiele: In JavaScript verwende ich jquery, um Schaltflächen in ein Dialogfeld einzufügen:

%Vor%

oder Inline in HTML:

%Vor%

Ich habe versucht, es mit jQuery nach dem Erstellen der Schaltflächen hinzuzufügen:

%Vor%

aber es funktioniert einfach nicht - es muss offensichtlich direkt zum Element hinzugefügt werden.

Wie gesagt, nicht schön, aber zumindest in Firefox funktioniert es wie ein Zauber.

    
semmelbroesel 03.06.2013 16:48
quelle
0

Ich bin gerade auch auf dieses Problem gestoßen. Es sieht so aus, als ob dies in Jquery UI mit einigen Browsern behoben werden kann, aber in Firefox schlägt es immer noch fehl. Von dem, was ich gesehen habe, wenn Sie den Knopf beim Bewegen der Maus anklicken, ändert sich die Knopffarbe, aber der tatsächliche Wert von "Eingabe" ändert sich nie. Sie können also kein "Change" -Ereignis verwenden, sondern stattdessen ein "Click" -Ereignis verwenden und sehen, ob es sich tatsächlich ändert. Was ich getan habe, ist eine Aktualisierung direkt beim Auftreten des Klickereignisses. Wenn sich der Eingabewert also von der Schaltfläche unterscheidet, sieht er für den Benutzer so aus, als hätte er nie darauf geklickt.

%Vor%     
scud42 18.12.2014 17:45
quelle

Tags und Links