¿Hay alguna manera de enlazar un evento de doble toque (en una sola línea de código) para safari móvil? O bien, la alternativa es implementarlo interceptando dos eventos de un solo toque que ocurrieron en un corto tiempo dado (ejemplo: http://appcropolis.com/blog/implementing-doubletap-on-iphones-and-ipads/)?Doble toque en safari móvil
Respuesta
Respuesta corta: debe implementar a través de dos clics.
respuesta real: Aquí es una aplicación jQuery libre de doble toque para Safari móvil que sólo requiere una línea de código (para habilitar dblclick evento):
Además, es probable que necesite disable mobile Safari's default zoom con esta metaetiqueta:
<meta name="viewport" content="width=device-width,user-scalable=no" />
Invalidar dblclick
evento y utilizar bind
, live
, on
, delegate
como para cualquier otro evento:
jQuery.event.special.dblclick = {
setup: function(data, namespaces) {
var elem = this,
$elem = jQuery(elem);
$elem.bind('touchend.dblclick', jQuery.event.special.dblclick.handler);
},
teardown: function(namespaces) {
var elem = this,
$elem = jQuery(elem);
$elem.unbind('touchend.dblclick');
},
handler: function(event) {
var elem = event.target,
$elem = jQuery(elem),
lastTouch = $elem.data('lastTouch') || 0,
now = new Date().getTime();
var delta = now - lastTouch;
if(delta > 20 && delta<500){
$elem.data('lastTouch', 0);
$elem.trigger('dblclick');
}else
$elem.data('lastTouch', now);
}
};
funciona en safari, pero no funciona en el escritorio de cromo – alpere
Si usted quiere tener trabajo doble clic tanto en el navegador y la plataforma de IOS, usted debe tener el siguiente código:
jQuery.event.special.dblclick = {
setup: function(data, namespaces) {
var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf('iphone') >= 0 || agent.indexOf('ipad') >= 0 || agent.indexOf('ipod') >= 0) {
var elem = this,
$elem = jQuery(elem);
$elem.bind('touchend.dblclick', jQuery.event.special.dblclick.handler);
} else {
var elem = this,
$elem = jQuery(elem);
$elem.bind('click.dblclick', jQuery.event.special.dblclick.handler);
}
},
teardown: function(namespaces) {
var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf('iphone') >= 0 || agent.indexOf('ipad') >= 0 || agent.indexOf('ipod') >= 0) {
var elem = this,
$elem = jQuery(elem);
$elem.unbind('touchend.dblclick');
} else {
var elem = this,
$elem = jQuery(elem);
$elem.unbind('click.dblclick', jQuery.event.special.dblclick.handler);
}
},
handler: function(event) {
var elem = event.target,
$elem = jQuery(elem),
lastTouch = $elem.data('lastTouch') || 0,
now = new Date().getTime();
var delta = now - lastTouch;
if (delta > 20 && delta < 500) {
$elem.data('lastTouch', 0);
$elem.trigger('dblclick');
} else {
$elem.data('lastTouch', now);
}
}
};
Inténtelo aquí:
Awesome code. Funcionó perfectamente –
- 1. Doble toque en UIButton
- 2. Facebook FB.login funciona en Safari, pero no en Safari móvil
- 3. Perfil móvil Safari (iPad) javascript?
- 4. Artefactos de línea en Safari móvil
- 5. ¿Doble toque o dos toques simples?
- 6. Safari móvil: manifiesto de audio + caché
- 7. Desactivar zoom de doble toque en MKMapView (iOS 6)
- 8. Doble toque en el intervalo de tiempo estándar
- 9. Objetivo-c: ¿Cómo detectar doble toque en la vista?
- 10. iframe se corta cuando en div en safari móvil
- 11. Prevenir la superposición gris en touchstart en Safari móvil/Webview
- 12. Seleccionar texto en el dispositivo móvil Safari en el iPhone
- 13. window.location sin definir en todas las propiedades en Safari 6 y Safari móvil (iOS 6)
- 14. href = tel: 555 enlace no funciona en el safari móvil
- 15. ¿Cómo corregir problemas de representación de fuentes en Safari móvil?
- 16. setInterval pausa en iphone/ipad (Safari móvil) durante el desplazamiento
- 17. ¿Limitaciones del tamaño de la imagen en el safari móvil?
- 18. Detener iframe redirigir/abrir safari móvil en proyecto de teléfono
- 19. ¿Se puede autocapitalizar desactivar con javascript en el safari móvil?
- 20. Lea UDID de Iphone con javascript en el safari móvil
- 21. Imágenes borrosas en el safari móvil iphone 4
- 22. iphone - gesto de un solo toque conflicto con el doble
- 23. Detener jQuery Evento de deslizamiento móvil doble burbujeo
- 24. Componente deslizable de doble rango y móvil en iOS
- 25. Ayúdenme a entender el tamaño del texto de Safari móvil
- 26. Safari móvil Reflow sin cambiar el tamaño - comportamiento de error
- 27. interesante problema de contenido oculto de safari móvil
- 28. ¿Cómo puedo inspeccionar el objeto ventana para safari móvil?
- 29. Marco "pantalla inicial" nombre del icono de Safari móvil
- 30. Mobile Safari: evento "touchend" que no se activa cuando se elimina el último toque?
¿No se usa la pestaña doble para ampliar? ¿Se activan 2 eventos tap en el navegador? – Undefined
mismo evento que se utiliza para el zoom y me gustaría anular el comportamiento para una situación dada concreta – BreakPhreak
Disculpe si no estoy relacionado con su problema pero si muestra una página web puede especificar la configuración de la ventana gráfica en la metaetiqueta. Puedes ver esto en el iwebkit desde snippetspace. –