Rozwijamy aplikację internetową z interfejsem GUI dostosowanym do używania na telefonie iPhone. Strona w aplikacji ma 3 kolejne listy rozwijane SELECT, gdzie wybór opcji z 1. listy rozwijanej powoduje wybranie opcji dla drugiego menu rozwijanego i tak dalej. Kolejne opcje rozwijane są zapełniane przez javascript na podstawie zdarzenia onchange w poprzednim menu rozwijanym. Problem polega na tym, że na iPhonie pojawiają się opcje SELECT z linkami "prev" i "next", aby przejść do poprzedniej i następnej kontrolki. Po kliknięciu linku "następny", sterowanie przechodzi do następnego WYBORU i wyświetla opcje. Język javascript jest wywoływany przez zdarzenie onchange dla poprzedniego SELECT i zapełnia opcje następnego SELECT. Ale na liście rozwijanej dla 2nd SELECT wyświetla poprzednie opcje, zanim zostanie ponownie zapełniony przez javascript. Czy istnieje obejście lub zdarzenie, które może sekwencyjnie wykonać javascript, a następnie wybrać następną kontrolę? Czy istnieje jakieś zdarzenie, które może zostać wywołane, gdy wybrana jest opcja SELECT, a przed kontrolą opuszcza element SELECT? Czy istnieje uchwyt dla następnych i poprzednich linków do wyświetlania opcji rozwijanej SELECT?Obsługa HTML SELECT Opcje z delegowaniem zdarzeń do javascript na iPhonie Safari
Odpowiedz
Być może można użyć zdarzenia ostrości, w jQuery to byłoby:
$('#select2').focus(function() {
// update select2's elements
});
Chociaż prawdziwym pytaniem jest, gdy przeciążenie iPhone przychodzi, a kiedy zdarzenie się zwolniony. Ponadto można zmienić wybrane opcje w tym widoku.
Mam ten sam problem co OP. Próbowałem fokus(), blur() i change(), ale iPhone nadal wydaje się być buforowanie zawartości listy, aż ponownie naciśnij przycisk Next/Prev. –
Tak, to samo, wypróbowane focus(), blur() i change(), żadna z tych prac. Ponadto, dlaczego upowszechniać coś, co nie działa, a nawet nie jest testowane. –
Miałem ten sam problem na mojej stronie. Udało mi się to naprawić, ręcznie odpytując właściwość selectedIndex
na formancie wyboru. W ten sposób odpala, gdy tylko "sprawdzisz" pozycję na liście. Oto wtyczka jQuery, którą napisałem, aby to zrobić:
$.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)
});
};
Używasz go tak, jak byś użył wydarzenia "zmień". Na przykład:
$("#mySelect1").quickChange(function() {
var currVal = $(this).val();
//populate mySelect2
});
Edycja: Android nie skupia select po dotknięciu go, aby wybrać nową wartość, ale to też nie ma ten sam problem, że iPhone ma. Napraw go, podłączając również stare zdarzenie change
.
- 1. Obsługa zdarzeń JavaScript z parametrami
- 2. Dynamicznie ustaw opcje select z JavaScript
- 3. Delegowanie zdarzeń JavaScript, obsługa rodziców klikniętych elementów?
- 4. Wybieranie tekstu w mobilnej przeglądarce Safari na iPhonie
- 5. Zagnieżdżone opcje SELECT
- 6. Obsługa zdarzeń magazynowania HTML5/JS
- 7. Jak dodać obsługi zdarzeń do przycisków HTML z kodem javascript
- 8. Pokaż/ukryj opcje na bootstrap-select?
- 9. Obsługa zdarzeń JavaScript nie obsługiwanych przez inne elementy
- 10. Wysokość 100% na html/body nie działa na iPhonie
- 11. Obsługa zdarzeń wątkowych (C#)
- 12. Obsługa zdarzeń .RRULE
- 13. JavaScript na iOS: otwarcie elementu wyboru HTML
- 14. Obsługa zdarzeń Select2 za pomocą Angular js
- 15. Obsługa zdarzeń edycji w JTextField
- 16. Lista obsługiwanych zdarzeń JavaScript na iPadzie
- 17. Dziwne, poziome białe znaki na iPhonie 4 Safari
- 18. Jsoup Java parser HTML: Wykonywanie zdarzeń javascript
- 19. Powtórz przez <select> opcje
- 20. Jak wyświetlić tekst HTML z API na iPhonie?
- 21. Mobile Safari jQuery select() na wejściu fokusowym nie działa
- 22. Tworzenie html select z optgroup z json
- 23. wykonać funkcji JavaScript z HTML wybierz
- 24. Czy obsługa zdarzeń zdefiniowana w samym dosłownym obiekcie javascript?
- 25. Różnice w JavaScript między Mobile Safari a Safari na Macu?
- 26. wysyłania zdarzeń z pytona do javascript używając sl4a
- 27. Znacznik wideo HTML Safari
- 28. HTML SELECT na iOS Chrome nie wyświetla opcji "Gotowe"
- 29. Jak zmienić opcje zaznaczenia przy użyciu JavaScript
- 30. Testowanie zdarzeń javascript na wyższych poziomach
Mam ten sam problem. –
Ten sam problem również tutaj. Nadal nie ma szczęścia z rozwiązaniem. –
Nie mogłem odtworzyć problemu, który masz. To [proste demo] (http://jsbin.com/ogona4/7) wydaje się działać idealnie na moim 1. generacji iPodzie touch, z systemem iOS 3.1 – brianpeiris