Подтвердить что ты не робот

Имитировать щелчок на элементе "a" с помощью javascript/jquery

Я пытаюсь имитировать щелчок по элементу. HTML для одного и того же выглядит следующим образом

<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>

Как я могу имитировать клик на нем. Я пробовал

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

Но ничего не делает

4b9b3361

Ответ 1

Использование jQuery: $('#gift-close').trigger('click');

Использование JavaScript: document.getElementById('gift-close').click();

Ответ 2

Попробуйте использовать document.createEvent, описанный здесь https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent

Код для функции, имитирующей клики, должен выглядеть примерно так:

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);      
}

Ответ 3

Использование jQuery:

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

Ответ 4

Код, который вы уже пробовали:

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

... должен работать до тех пор, пока элемент фактически существует в DOM в момент его запуска. Некоторые возможные способы обеспечения включают:

  • Запустите код из обработчика onload для окна. http://jsfiddle.net/LKNYg/
  • Запустите свой код из обработчика документа, если вы используете jQuery. http://jsfiddle.net/LKNYg/1/
  • Поместите код в блок script, который находится после элемента в исходном html.

Итак:

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

Ответ 5

попробовать:

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

или jQuery:

$("#gift-close")[0].onclick();

Ответ 6

Используйте этот код, чтобы щелкнуть:

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

Ответ 7

Снимок кода ниже!

Пожалуйста, взгляните на эти документы и примеры на MDN, и вы найдете ответ. Это тот способ, которым я бы это сказал.

Создание и запуск событий

Отправка события (пример)

Взято из "Диспетчерского события (пример)" - HTML-ссылка (имитировать клик):

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");
  }
}

Вот как я это сделал (2017 г.):

Просто используя 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>

Ответ 8

Здесь попробуйте следующее:

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