Wir entwickeln eine Webanwendung mit GUI, die für die Verwendung auf dem iPhone angepasst wurde. Eine Seite in der App hat 3 aufeinander folgende SELECT-Dropdown-Felder, wobei die Auswahl einer Option aus dem ersten Dropdown-Menü die Optionen für das zweite Dropdown-Feld usw. abruft. Die folgenden Drop-down-Optionen werden von JavaScript auf Basis des Onchange-Ereignisses im vorherigen Dropdown-Menü aufgefüllt. Das Problem ist, dass auf dem iPhone die Optionen für eine SELECT mit 'prev' und 'next' Links angezeigt werden, um zum vorherigen und nächsten Steuerelement zu wechseln. Wenn auf den Link 'Weiter' geklickt wird, geht das Steuerelement zum nächsten SELECT und zeigt die Optionen an. Das JavaScript wird durch das Ereignis onchange für das vorherige SELECT ausgelöst und füllt die Optionen für das nächste SELECT. Aber im Drop-down für 2. SELECT werden die vorherigen Optionen angezeigt, bevor sie vom Javascript neu gefüllt werden. Gibt es eine Problemumgehung oder ein Ereignis, das die Ausführung von Javascript und dann die Auswahl des nächsten Steuerelements sequenzieren kann? Gibt es ein Ereignis, das ausgelöst werden kann, wenn eine SELECT-Option ausgewählt wird und bevor die Steuerung das SELECT-Element verlässt? Gibt es ein Handle für Next und Previous Links für die SELECT Dropdown-Optionsanzeige?Umgang mit HTML SELECT Optionen mit Ereignisdelegierung zu Javascript auf dem iPhone Safari
Antwort
Vielleicht könnten Sie das Fokus-Ereignis verwenden, in jQuery dies wäre:
$('#select2').focus(function() {
// update select2's elements
});
Obwohl die eigentliche Frage ist, wenn das iPhone Überlastung kommt, und wenn das Ereignis gefeuert. Außerdem können die Auswahloptionen in dieser Ansicht geändert werden.
Ich habe das gleiche Problem wie das OP. Ich habe focus(), blur() und change() versucht, aber das iPhone scheint immer noch den Inhalt der Liste zwischenzuspeichern, bis Sie Next/Prev erneut drücken. –
Yup, selbe, versuchte Fokus(), blur() und ändern(), keiner von denen funktioniert. Auch, warum etwas upvote, das nicht funktioniert und nicht einmal getestet wird. –
Ich hatte das gleiche Problem auf meiner Website. Ich konnte es beheben, indem ich manuell die Eigenschaft auf dem Auswahlsteuerelement abfragte. So wird es ausgelöst, sobald Sie den Eintrag in der Liste "überprüfen". Hier ist ein jQuery-Plugin Ich schrieb dies zu tun:
$.fn.quickChange = function(handler) {
return this.each(function() {
var self = this;
self.qcindex = self.selectedIndex;
var interval;
function handleChange() {
if (self.selectedIndex != self.qcindex) {
self.qcindex = self.selectedIndex;
handler.apply(self);
}
}
$(self).focus(function() {
interval = setInterval(handleChange, 100);
}).blur(function() { window.clearInterval(interval); })
.change(handleChange); //also wire the change event in case the interval technique isn't supported (chrome on android)
});
};
Sie es verwenden, wie Sie die „change“ -Ereignis verwenden würde. Zum Beispiel:
$("#mySelect1").quickChange(function() {
var currVal = $(this).val();
//populate mySelect2
});
bearbeiten: Android konzentriert sich nicht das wählen, wenn Sie es tippen Sie einen neuen Wert zu wählen, aber es hat auch nicht das gleiche Problem, das iphone tut. Also reparieren Sie es, indem Sie auch das alte change
-Ereignis verdrahten.
- 1. Umgang mit Internet-Ausfällen auf dem iPhone
- 2. jQuery-Ereignisdelegierung mit nicht-trivialem HTML-Markup?
- 3. Umgang mit Fragment Menüs Optionen
- 4. Ereignisdelegierung mit "Hammer.js"
- 5. three.js Probleme auf dem iPhone (Safari), Problem mit der Texturgröße?
- 6. Zoomen auf iPhone Safari mit Javascript aktivieren/deaktivieren?
- 7. funktioniert Javascript auf iPhone Mobile Safari XPpath?
- 8. Handle Reaktion auf Ereignisdelegierung mit stopPropagation()
- 9. Safari Select-Popup gerendert mit abgeschnittenen Check
- 10. jQtouch webapp verhält sich gut auf Mac Safari funktioniert aber nicht auf dem iPhone Safari
- 11. Run-Funktion auf Standard-HTML-Select mit PHP und Javascript
- 12. Umgang mit Optionen in Scala Play-Vorlage
- 13. Zugriff auf iPhone-Kompass mit JavaScript
- 14. JavaScript Animation mit Safari
- 15. Umgang mit dem iPhone "Low Battery" erscheint während eines Spiels
- 16. Liste der bekannten Unterschiede zwischen "Safari auf dem iPad" und "Safari auf dem iPhone"
- 17. create select mit Optionen von mysql pdo
- 18. Hochladen von Dateien mit HTML-Dateieingabe auf dem iPhone
- 19. IPv4-Adresse mit JavaScript auf Safari abrufen
- 20. Clone HTML DIV mit jQuery auf select
- 21. WebKit auf dem iPhone: ist es möglich, Text mit JavaScript in den ClipBoad zu kopieren
- 22. Wie ein Select mit ng-Optionen filtern
- 23. html select multiple
- 24. Vererbungsproblem mit dem ivar auf dem iPhone
- 25. Dynamisch hinzufügen Wählen Sie Optionen mit Javascript
- 26. Dynamisch setzen Auswahl-Optionen mit JavaScript
- 27. Spoofing des Benutzeragenten eines eingebetteten Safari-Browsers auf dem iPhone?
- 28. Umgang mit Button-Ereignis in iphone
- 29. Seltsame horizontale Leerzeichen auf dem iPhone 4 Safari
- 30. Entfernen von Optionen von Select Element mit jedem zusätzlichen DIV
Ich habe das gleiche Problem. –
Das gleiche Problem auch hier. Immer noch kein Glück mit einer Lösung. –
Ich konnte das Problem, das Sie haben, nicht reproduzieren. Diese [einfache Demo] (http://jsbin.com/ogona4/7) scheint perfekt auf meinem 1. Gen iPod touch zu funktionieren, läuft iOS 3.1 – brianpeiris