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