trigger link evento event disparar javascript jquery onclick

link - Simulando un clic en jQuery/JavaScript en un enlace



trigger click javascript (7)

¡Fácil! Solo usa la función de click de jQuery:

$("#theElement").click();

Quiero simular un clic en cualquier enlace en una página usando JavaScript. Si ese enlace tiene alguna función vinculada a su evento ''onclick'' (por cualquier otro JS sobre el que no tengo control), entonces se debe llamar a esa función, de lo contrario, el enlace debería comportarse de la manera normal y abrir una nueva página.

No estoy seguro de que basta con comprobar el valor del controlador ''onclick''. Quiero construir esto para que funcione en cualquier elemento de enlace.

No tengo control sobre qué función puede vincularse al evento onclick del enlace usando la biblioteca JS (no necesariamente jQuery) o simplemente usando JavaScript.

EDITAR: Con la ayuda de las respuestas a continuación, parece que es posible verificar los controladores de eventos conectados mediante jQuery o mediante el atributo onclick . ¿Cómo verifico los controladores de eventos adjuntos usando addEventListener / cualquier otra biblioteca JS para que sea infalible?


¿Por qué no solo el javascript del buen ol?

$(''#element'')[0].click()


Al principio, vea esta question para ver cómo puede encontrar si un enlace tiene asignado un controlador jQuery.

Siguiente uso:

$("a").attr("onclick")

para ver si hay un evento javascript asignado.

Si cualquiera de los anteriores es verdadero, entonces llame al método de clic. Si no es así, consigue el enlace:

$("a").attr("href")

y síguelo.

Me temo que no sé qué hacer si se usa addEventListener para agregar un controlador de eventos. Si está a cargo de la fuente de la página completa, use solo los controladores de eventos jQuery.


Es posible que todo esto no ayude a decir cuándo usa el botón de formulario remoto de rieles para simular el clic para. Intenté portar simulación de un buen evento desde el prototipo aquí: mis fragmentos . Simplemente lo hice y me funciona.


Prueba esto

function submitRequest(buttonId) { if (document.getElementById(buttonId) == null || document.getElementById(buttonId) == undefined) { return; } if (document.getElementById(buttonId).dispatchEvent) { var e = document.createEvent("MouseEvents"); e.initEvent("click", true, true); document.getElementById(buttonId).dispatchEvent(e); } else { document.getElementById(buttonId).click(); } }

y puedes usarlo como

submitRequest("target-element-id");


Puede utilizar la función de click para activar el evento de clic en el elemento seleccionado.

Ejemplo:

$( ''selector for your link'' ).click ();

Puedes aprender sobre varios selectores en la documentation de jQuery.

EDITAR: como han dicho los comentaristas a continuación; esto solo funciona en eventos adjuntos con jQuery, en línea o en el estilo de "element.onclick". No funciona con addEventListener, y no seguirá el enlace si no se definen los controladores de eventos. Podrías resolver esto con algo como esto:

var linkEl = $( ''link selector'' ); if ( linkEl.attr ( ''onclick'' ) === undefined ) { document.location = linkEl.attr ( ''href'' ); } else { linkEl.click (); }

Aunque no sé sobre addEventListener.


Sólo

$("#your_item").trigger("click");

utilizando .trigger () puedes simular muchos tipos de eventos, simplemente pasándolo como parámetro.