Simular un user-click con jQuery

¿No os ha pasado alguna vez que estáis haciendo un proyecto y el cliente os pide cosas realmente extrañas? A mí sí, y bastante. Quizás sea porque en mi empresa nos encantan los clientes extraños porque ellos son los que te hacen crecer (y a veces maldecir) en esta profesión.

Uno de nuestros clientes se emperró en que al hacer click en un enlace se generara un user-click en uno de sus tabs. Por si alguno de vosotros no lo sabiáis, JavaScript (y por ende jQuery) no trata de la misma manera un evento click() o trigger("click") que un evento click realizado por el usuario, lo que comúnmente se llama user-click.

No es que sea difícil generar este tipo de eventos, simplemente no es usual.Así que, y sólo por si os interesa, aquí tenéis cómo hacerlo:

function simularClick() {
//Crear el evento user-click
  var event = new MouseEvent('click', {
    view: window,
    bubbles: true,
    cancelable: true
  });
//Obtener el objetivo de nuestro user-click
  var objetivoDelClick = document.getElementById('miObjetivo'); 
//Realizar evento y capturar resultado
  var resultado = !objetivoDelClick.dispatchEvent(event);
  if (resultado) {
    // Un handler ha realizado un preventDefault, esto puede deberse a un solapamiento de funciones.
  } else {
    // No ha ocurrido un preventDefault, por lo que, podemos decir que ha funcionado.
  }
}
«
»

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.