2010-07-21 7 views
34

estoy usando el código actual:¿mousedown/mouseup en jquery funcionan para el ipad?

$('body').mousedown(function() { 
     $('div#extras').fadeTo('fast', 1); 
}); 

$('body').mouseup(function() { 
     $('div#extras').delay(2000).fadeTo(1500, 0); 
}); 

Esto funciona muy bien en Safari pero cuando lo subo y comprobar que funciona en el iPad que no funciona?

Respuesta

79

He encontrado la manera de hacer esto para el ipad para aquellos que estén interesados:

en lugar del código que utilicé en mi pregunta, se debería utilizar:

$('body').bind("touchstart", function(e){ 
     $('div#extras').fadeTo('fast', 1); 
}); 

&

$('body').bind("touchend", function(e){ 
     $('div#extras').delay(2000).fadeTo(1500, 0); 
}); 
+38

$ ('cuerpo'). En ("touchstart mousedown", la función (e) {// esto iba a funcionar en dispositivos de escritorio y móviles, al mismo tiempo }) – Denis

+0

Sólo quiero añadir, no se olvide para usar 'e.preventDefault()' en caso de overlay/model-popup. – Arshad

7

No exactamente.

Apple Docs

Cita:

Un elemento se puede hacer clic es un enlace, elemento de formulario, en la zona de mapa de imagen, o cualquier otro elemento con mousemove, mousedown, mouseup, o onclick manipuladores . Un elemento desplazable es cualquier elemento con un estilo de desbordamiento adecuado, áreas de texto y elementos iframe desplazables. Debido a estas diferencias, es posible que necesite cambiar algunos de sus elementos a elementos seleccionables, como se describe en "Making Elements Clickable", para obtener el comportamiento deseado de en el sistema operativo del iPhone.

(el énfasis es mío)

+0

Hmm, no estoy seguro de eso, pero está funcionando perfectamente para mí en el ipad. :) – Annie

6

En realidad, no respondiendo a su pregunta, pero puede ser útil para las personas que vinieron aquí sólo para buscar 'jQuery mousedown/mouseup en IPAD'

Siempre lo uso poco truco:

$(element).hover(function() { 
    // Do something 
}); 

Esto desencadena el tacto usando un iPad y revierte la acción cuando se hace clic fuera del elemento ya que es un vuelo estacionario, incluso t. Así, por ejemplo:

// Assuming the element has 'opacity: 0' in CSS 

$(element).hover(function() { 
    $(this).animate({'opacity': 1}, 200); 
}); 

Crea un efecto de fundido 'al hacer clic', y un efecto fade out 'en mouseup'.

Cuestiones relacionadas