El simulador de iPhone comprende el primer evento "click" jQuery, pero no el segundo

Estoy encontrando esto un poco confuso, si alguien más se ha topado con esto y podría iluminarme …

Tengo un click event listener configurado usando jQuery que se registra bien, pero el segundo no, sin embargo, en el segundo, el evento touchend se registra.

$(document).on("click", ".date-button", ...

y el segundo oyente de events similar en un elemento diferente:

$(document).on("click touchend", ".time.true", ...

Tengo que usar touchend , porque el click no se registra. Estaría encantado de usar ambos, click touchend pero si lo hago en el primer oyente, el comportamiento se ejecutará dos veces (¡una vez para hacer clic y una vez más para touchend)!

Actualizar

Me di count de que el problema era que estaba "quizás" delegar demasiados events en el document . Cuando delegé el segundo click oyente para leer algo como $("#times-popup").on("click", ".time.true", ... funcionó nuevamente.

Sigo pensando que esto es un error en algún lugar, ya sea en jQuery o iOS … más probable es jQuery, o estoy haciendo algo que no debo hacer?

En el iPhone, la delegación de events no funciona para el evento de clic. Funciona bien para mouseover y mouseout, bien para events táctiles, pero no para hacer clic.

Sin embargo … la delegación de events funciona si el objective del evento es un enlace o un campo de input.

http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html

Entonces, un enfoque sería cambiar su elemento .date-button para escribir a o input . De forma alternativa, agregar un poco de CSS a su página también podría solucionar su error:

 .date-button { cursor: pointer; } 

Ver: http://jimmybyrum.com/tests/eventdelegation.html