Estamos desarrollando una aplicación web con GUI personalizada para usar en iPhone. Una página de la aplicación tiene 3 listas desplegables SELECT posteriores, donde la selección de una opción del primer menú desplegable deriva las opciones para el segundo menú desplegable, y así sucesivamente. Las siguientes opciones desplegables están llenas de javascript basado en el evento onchange en el menú desplegable anterior. El problema es que, en iPhone, las opciones para un SELECCIONAR aparecen con los enlaces 'prev' y 'siguiente' para pasar al control anterior y siguiente. Cuando se hace clic en el enlace 'siguiente', el control pasa al siguiente SELECCIONAR y muestra las opciones. El javascript se desencadena por el evento onchange para SELECT anterior y rellena las opciones para el próximo SELECT. Pero en el menú desplegable para 2nd SELECT, se muestran las opciones anteriores antes de que se vuelva a llenar con javascript. ¿Hay alguna solución o evento que pueda secuenciar la ejecución de javascript y luego seleccionar el siguiente control? ¿Hay algún evento que pueda activarse cuando se selecciona una opción SELECCIONAR y antes de que el control abandone el elemento SELECCIONAR? ¿Hay un identificador para los enlaces Siguiente y Anterior para la visualización de la opción desplegable SELECT?Manejo de opciones HTML SELECT con delegación de eventos a javascript en iPhone Safari
Respuesta
Tal vez usted podría utilizar el evento de foco, en jQuery esto sería:
$('#select2').focus(function() {
// update select2's elements
});
Aunque la verdadera pregunta es cuando la sobrecarga de iPhone llega, y cuando el evento de ser despedido. Y también se pueden cambiar las opciones de selección en esta vista.
Tengo el mismo problema que el OP. Intenté enfocar(), desenfocar() y cambiar(), pero el iPhone todavía parece almacenar en la memoria caché los contenidos de la lista hasta que vuelva a presionar Siguiente/Anterior. –
Sí, lo mismo, intentó enfocar(), desenfocar() y cambiar(), ninguno de esos funciona. Además, ¿por qué votar algo que no funciona y ni siquiera se prueba? –
Tuve el mismo problema en mi sitio. Pude solucionarlo consultando manualmente la propiedad selectedIndex
en el control de selección. De esta forma, se activará tan pronto como "verifique" el elemento en la lista. Aquí es un plugin de jQuery que escribí para hacer esto:
$.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)
});
};
Se utiliza al igual que lo haría con el evento "cambio". Por ejemplo:
$("#mySelect1").quickChange(function() {
var currVal = $(this).val();
//populate mySelect2
});
Editar: Android no enfocar la selección cuando se toca para seleccionar un nuevo valor, pero también no tiene el mismo problema que hace iPhone. Así que corrige al cablear también el antiguo evento change
.
- 1. JavaScript discreto Obfusca el manejo de eventos
- 2. ¿Qué bibliotecas de JavaScript tienen delegación de eventos?
- 3. Delegación de eventos a los sub-vistas en Backbone.js
- 4. Lea UDID de Iphone con javascript en el safari móvil
- 5. jQuery .on() con múltiples selectores en la delegación de eventos?
- 6. Delegación de eventos a una vista principal en Backbone
- 7. ¿Manejo de eventos con PowerShell?
- 8. HTML Select + limitar el número de opciones visibles
- 9. Implementar UIPickerview en Mobile Safari a través de HTML
- 10. Prevenir eventos de emulación de mouse (es decir, hacer clic) desde eventos táctiles en Mobile Safari/iPhone usando Javascript
- 11. Manejo del modo de espera en iPad con Javascript
- 12. Habilitar/deshabilitar el zoom en iPhone safari con Javascript?
- 13. Manejo de eventos de Javascript no manejados por otros elementos
- 14. Opciones de selección configuradas dinámicamente con JavaScript
- 15. Manejo de eventos en Haskell
- 16. .NET gestión del manejo de eventos
- 17. Manejo de eventos con C# Extension Methods
- 18. Manejo de eventos con Jython & Swing
- 19. Animación de JavaScript con Safari
- 20. Manejo de eventos del mouse con cvSetMouseCallback
- 21. Iterar a través de <select> opciones
- 22. Carga de archivos de iPhone con HTML
- 23. opción html multi select cómo marcar las opciones seleccionadas?
- 24. ¿Cómo funciona el manejo de eventos internamente dentro de JavaScript?
- 25. JavaScript: Cómo simular evento de cambio en Internet Explorer (delegación)
- 26. Manejo de sesión en la página HTML usando JavaScript
- 27. ¿Por qué no llevar la delegación de eventos Javascript al extremo?
- 28. ¿Delegación de evento de Javascript, manejando a los padres de los elementos cliqueados?
- 29. ejecutar javascript html función de seleccionar
- 30. HTML SELECT - Cambiar la opción seleccionada por VALUE usando JavaScript
Tengo el mismo problema. –
El mismo problema aquí también. Todavía no hay suerte con una solución. –
No he podido reproducir el problema que está teniendo. Esta [demostración simple] (http://jsbin.com/ogona4/7) parece funcionar perfectamente en mi primer iPod ipod touch, ejecutando iOS 3.1 – brianpeiris