trigger evento disparar change automatico autoclick javascript jquery hyperlink click simulate

javascript - evento - simulate click jquery



Simular un clic en el elemento ''a'' usando javascript/jquery (7)

Aquí, prueba este:

$(''#gift-close'').on(''click'', function () { _gaq.push([''_trackEvent'',''voucher_new'',''cart'',$(this).attr(''rel'')+''-mask_x_button-inaction'']); });

Estoy tratando de simular un clic en un elemento. HTML para el mismo es el siguiente

<a id="gift-close" href="javascript:void(0)" class="cart-mask-close p-abs" onclick="_gaq.push([''_trackEvent'',''voucher_new'',''cart'',$(this).attr(''rel'')+''-mask_x_button-inaction'']);" rel="coupon">&nbsp;</a>

¿Cómo puedo simular un clic en él? Yo he tratado

document.getElementById("gift-close").click();

Pero no está haciendo nada


El código que ya has probado:

document.getElementById("gift-close").click();

... debería funcionar mientras el elemento realmente exista en el DOM en el momento de ejecutarlo. Algunas formas posibles de asegurar que incluyen:

  1. Ejecute su código desde un controlador de onload para la ventana. jsfiddle.net/LKNYg
  2. Ejecute su código desde un manejador listo para documentos si está usando jQuery. http://jsfiddle.net/LKNYg/1/
  3. Coloque el código en un bloque de script que esté detrás del elemento en el html de origen.

Asi que:

$(document).ready(function() { document.getElementById("gift-close").click(); // OR $("#gift-close")[0].click(); });


Intenta utilizar document.createEvent descrito aquí https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent

El código para la función que simula el clic debería verse más o menos así:

function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var a = document.getElementById("gift-close"); a.dispatchEvent(evt); }


Usando jQuery:

$(''#gift-close'').click();


Usando jQuery: $(''#gift-close'').trigger(''click'');

Usando JavaScript: document.getElementById(''gift-close'').click();


Use este código para hacer clic:

$("#gift-close").click();


Fragmento de código debajo!

Mire estos documentos y ejemplos en MDN , y encontrará su respuesta. Esta es la forma adecuada de hacerlo, diría yo.

Crear y desencadenar eventos

Evento de envío (ejemplo)

Tomado del ''Evento de despacho (ejemplo)'' - HTML-link (simulate click):

function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } }

Así es como lo haría (2017 ..):

Simplemente usando MouseEvent .

function simulateClick() { var evt = new MouseEvent("click"); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if (canceled) { // A handler called preventDefault console.log("canceled"); } else { // None of the handlers called preventDefault console.log("not canceled"); } }

document.getElementById("button").onclick = evt => { simulateClick() } function simulateClick() { var evt = new MouseEvent("click"); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if (canceled) { // A handler called preventDefault console.log("canceled"); } else { // None of the handlers called preventDefault console.log("not canceled"); } }

<input type="checkbox" id="checkbox"> <br> <br> <button id="button">Check it out, or not</button>