El evento jQuery click no funciona en navegadores móviles

el evento de clic de jQuery no parece activarse en navegadores móviles.

El HTML es el siguiente:

    

Esta es la secuencia de comandos jQuery para dispositivos móviles:

 $(document).ready(function(){ $('.publications').click(function() { $('#filter_wrapper').show(); }); }); 

Cuando hago clic en el elemento de la lista de “publicaciones” en un navegador móvil no ocurre nada.

Puede ver el sitio aquí: http://www.ruthcrocker.com/

No estoy seguro de si hay eventos específicos de jQuery para dispositivos móviles.

Raminson tiene una buena respuesta si ya estás (o no te importa) usando jQuery Mobile. Si desea una solución diferente, ¿por qué no modifica su código de la siguiente manera?

cambie ese LI con el que está teniendo problemas para incluir una etiqueta A y aplicar la clase allí en lugar de la LI

   

Y su código javascript / jquery … devuelve falso para dejar de burbujear.

 $(document).ready(function(){ $('.publications').click(function() { $('#filter_wrapper').show(); return false; }); }); 

Esto debería funcionar para lo que estás tratando de hacer.

Además, noté que tu sitio abre los otros enlaces en tabs / ventanas nuevas, ¿es intencional?

Sé que este es un viejo tema resuelto, pero acabo de responder una pregunta similar, y aunque mi respuesta podría ayudar a otra persona, ya que cubre otras opciones de solución:

Los eventos de clic funcionan de forma diferente en dispositivos habilitados para tocar. No hay mouse, por lo que técnicamente no hay clic. Según este artículo, http://www.quirksmode.orghttps://stackoverflow.com/blog/archives/2010/09/click_event_del.html , debido a limitaciones de memoria, los eventos de clic solo se emulan y se envían desde el ancla y los elementos de entrada. Cualquier otro elemento podría usar eventos táctiles o hacer que los eventos de clic se inicien manualmente al agregar un controlador al elemento html sin formato, por ejemplo, para forzar los eventos de clic en elementos de la lista:

 $('li').each(function(){ this.onclick = function() {} }); 

Ahora el clic se activará por li, por lo tanto, puede ser escuchado por jQuery.


En su caso, puede cambiar el oyente al elemento de anclaje como muy bien puesto por @ mason81, o usar un evento táctil en el li:

 $('.menu').on('touchstart', '.publications', function(){ $('#filter_wrapper').show(); }); 

Aquí hay un violín con algunos experimentos: http://jsbin.com/ukalah/9/edit

Puede usar el evento vclick jQuery Mobile:

Evento normalizado para manejar eventos de touchend o mouse click en dispositivos táctiles.

 $(document).ready(function(){ $('.publications').vclick(function() { $('#filter_wrapper').show(); }); }); 

JqueryMobile: Importante: use $(document).bind('pageinit') , no $(document).ready() :

 $(document).bind('pageinit', function(){ $('.publications').vclick(function() { $('#filter_wrapper').show(); }); }); 

Una solución para tocar y hacer clic en jQuery (sin jQuery Mobile)

Deje que el sitio de jQuery Mobile genere su descarga y agréguela a su página. Para una prueba rápida, también puede usar la secuencia de comandos proporcionada a continuación.

A continuación, podemos volver a cablear todas las llamadas a $ (…) .click () utilizando el siguiente fragmento de código:

   

fuente

La respuesta de Vohuman me llevó a mi propia implementación:

 $(document).on("vclick", ".className", function() { // Whatever you want to do }); 

En lugar de:

 $(document).ready(function($) { $('.className').click(function(){ // Whatever you want to do }); }); 

¡Espero que esto ayude!