Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

113
Visualizações
Buscando una solución alternativa para Touchstart/Touchend en jQuery

Tengo una serie de botones de colores hechos de intervalos que tienen respaldo de jQuery. Cuando jQuery se ejecuta, mueve la clase "activa", carga una imagen de color diferente, cambia varias etiquetas y cambia el color de fondo de varios tramos en otro div.

Tengo esto funcionando tanto con .click como con .on(touchend, pero tengo la impresión de que la razón por la que esto parece haber funcionado en mi visor móvil, pero no en mi móvil, es porque estoy ejecutando Safari.

Creo que safari no admite touchstart, touchend y algunas otras funciones táctiles. El safari en mi teléfono SÍ tiene Java habilitado, pero aún así no funciona.

1.) ¿Safari realmente no es compatible con touchstart/touchend? 2.) ¿Safari admite eventos táctiles de jQuery? 3.) ¿Es inapropiado vincular el sitio web en el que está trabajando? (si está bien, entonces lo haré) 4.) ¿Sería más fácil convertir todo en html?

También tengo este fragmento de código para convertir clics en javascript, pero no sé si hay un evento que funcione en safari para pantallas táctiles similares a .click

 document.querySelectorAll('.link').forEach(link => { link.addEventListener('click', event => { /* ... */ }); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lo arreglé.

El problema no era el safari. El problema era que podía hacer que los botones funcionaran cuando estaba conectado, pero no cuando no estaba conectado al back-end. Esto se debió al orden en que se cargaron las cosas (me dijeron).

Para responder a mis propias preguntas:

1.) Safari admite touchstart/touchend y otros eventos táctiles. Safari anteriormente no tenía soporte para estos eventos táctiles, pero años de quejas finalmente los agregaron a su sistema.

2.) Nunca busqué más para encontrar si había más eventos táctiles que funcionaran con safari.

3 y 4 no necesitan respuestas mías.

Entonces, ¿cómo resolví el problema? Estoy trabajando fuera de WordPress. WordPress carga jQuery en el pie de página. Esto significa que todos sus elementos se cargarán antes de que jQuery (y JavaScript) puedan ejecutarse o estar listos. Entonces, para cambiar eso, tuve que hacer lo que se dice en este sitio https://jamesparsons.com/2020/02/jquery-render-blocking-insights#:~:text=It%E2%80%99s%20important%20to %20revise%20su%20consola%20para%20JavaScript,es%20a%20mucho%20más%20actual%20y%20eficiente%20versión%3A

y en caso de que el sitio se caiga alguna vez, aquí está el código que necesitarías insertar en el archivo "function.php" de tu tema (puse el mío en la parte inferior de la página)

 add_filter( 'wp_enqueue_scripts', 'replace_default_jquery_with_fallback'); function replace_default_jquery_with_fallback() { $ver = '1.12.4'; wp_dequeue_script( 'jquery' ); wp_deregister_script( 'jquery' ); // Set last parameter to 'true' if you want to load it in footer wp_register_script( 'jquery', "//ajax.googleapis.com/ajax/libs/jquery/$ver/jquery.min.js", '', $ver, false ); wp_add_inline_script( 'jquery', 'window.jQuery||document.write(\'<script src="'.includes_url( '/js/jquery/jquery.js' ).'"><\/script>\')' ); wp_enqueue_script ( 'jquery' ); }

Según tengo entendido, esto obligó a WordPress a no cargar jQuery de la manera típica y luego lo obligó a cargar de una manera diferente, lo que le permite funcionar correctamente en un sitio web de WordPress cuando no está conectado al back-end.

En WordPress, jQuery solo funciona si escribe "jQuery". No puede usar '$'. pero al cambiar este código ahora puede (y posiblemente debe) usar el '$'

Aspecto de línea final que funcionó:

 $('.changecolor span').ready(function touch(e) { $('.changecolor span').on('touchend', function touch(e) { //.......// }); });

Hacer un seguimiento. No conozco bien las reglas de este sitio. ¿Debo eliminar mi publicación ya que resolví mi problema?

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda