Tengo un problema con jQuery 1.6.4, iOS 5 y el registro de eventos touchstart/touchend (como se indica en el título, obviamente).jQuery events en iOS 5
tomar el código siguiente:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="mmpa/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var $body = $('body');
$('<button>').html('test jQuery').bind('touchstart', function() { alert('touchstart'); }).appendTo($body);
});
</script>
</head>
<body>
<button ontouchstart="alert('touchstart');">test pure JS</button>
</body>
</html>
El botón "pura JS" muestra la alerta en iOS 4.3 y iOS 5, pero el botón "jQuery" sólo funciona en iOS 4.3. Probado en el simulador de iPad/iPhone, 4.3 y 5; también probado en el iPhone 4.3, el iPhone 5.0 y el iPad 5.0 reales. La misma reacción si uso un <input type="button">
o incluso un simple <a>
en lugar de un <button>
.
¿Es un problema relacionado con jQuery como creo?
no utilice el enlace ('touchstart') y ontouchstart = "". Use uno de ellos, y prefiera no usar javascript en línea. –
Esa fue una prueba de concepto para mostrar que JS en línea funciona cuando jQuery no lo hace. Por supuesto que nunca, nunca uso JS en línea en código real. – Cyrille
Pude producir este error con jQ 1.5.2 y el evento click, así que tal vez deba modificar el título para que sea algo así como "jQuery Events en iOS 5" – webXL