jQuery mobile Schaltfläche gedrückt bleiben

8

Ich habe einen mobilen jQuery-Button, der an einen AJAX-POST angeschlossen ist. Wenn der POST fehlschlägt, bleibt die mobile jQuery-Schaltfläche gedrückt, anstatt "aufzusteigen". Irgendwelche Ideen?

    
jaynp 25.07.2013, 23:13
quelle

3 Antworten

7

Es kann leicht gemacht werden.

Hier ein jsFiddle Beispiel für eine meiner vorherigen Antworten: Ссылка

Wenn Sie einen Blick darauf werfen, gibt es diese Codezeile:

%Vor%

Es wird versucht, einen gedrückten Knopf auf einer aktuell aktiven Seite zu finden, wenn es erfolgreich ist, werden 2 Klassen entfernt, die für einen gedrückten Knopfzustand verantwortlich sind. Leider ist eine reine CSS-Lösung hier nicht möglich. Sie können dieses Beispiel testen, einfach die obere Zeile kommentieren und sehen, was passiert.

Eine letzte Sache, die selector $ .mobile.activePage nur während der Seitenvorderseite, Seitenanzeige, Seitenvorderänderung, Seitenwechsel, Seitenvorderseite und Seitenvorderseite verwenden kann, berücksichtigt dies.

Falls Sie diesen Selektor nicht verwenden können, ersetzen Sie ihn einfach durch eine Seiten-ID wie folgt:

%Vor%

So würde Ihr endgültiger Code wie folgt aussehen:

%Vor%     
Gajotres 26.07.2013, 07:59
quelle
0

Fügen Sie Ihrer AJAX-Behandlung eine Fehlerklausel hinzu, die die Schaltfläche wieder öffnet.

%Vor%     
Michael Johansen 25.07.2013 23:17
quelle
0

Für Leute da draußen, die "Eingabe" und nicht "Anker" als Schaltflächen benutzen. Wenn Sie beispielsweise die Schaltflächen "Senden" und "Zurücksetzen" verwenden und diese drücken, bleiben sie aktiv, was je nach den Aktionen, die beim Klicken auf die Schaltflächen ausgeführt werden, manchmal unerwünscht ist.

Ich bin mir nicht sicher, ob es das erwartete Verhalten ist, ich habe gelesen, dass es sich um einen jQuery-Mobile-Bug handelt, aber das Verhalten ist zumindest in jQM 1.3.2 immer noch vorhanden.

Ja, der Trick besteht darin, die aktive Klasse wie angegeben zu entfernen, aber das wird schwierig, weil die -Klasse nicht zum Eingabe-Tag hinzugefügt wird, i * t wird zu einem Eltern-DIV * hinzugefügt, das von allen hässlichen Dingen rund um die "Eingabe" erstellt wird, um die Schaltfläche zu formatieren. Deshalb ist das Entfernen der aktiven Klasse beim Auswählen der Eingabe nicht möglich.

Wenn Sie das von jQuery mobile erstellte HTML analysieren, können Sie dies umgehen:

Entfernen Sie die aktive Klasse für das übergeordnete Eingabeelement anstelle des tatsächlichen Eingabeelements .

$ ('. mybutton_class_or_ID'). parent (). removeClass ('ui-btn-active');

Ich bevorzuge diesen Ansatz, anstatt alle aktiven Klassen auf der ganzen Seite zu löschen, falls Sie mit der Klassenentfernung selektiver sein wollen.

    
VicM 24.09.2013 20:51
quelle

Tags und Links