Ответ 1
Использование jQuery: $('#gift-close').trigger('click');
Использование JavaScript: document.getElementById('gift-close').click();
Я пытаюсь имитировать щелчок по элементу. 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"> </a>
Как я могу имитировать клик на нем. Я пробовал
document.getElementById("gift-close").click();
Но ничего не делает
Использование jQuery: $('#gift-close').trigger('click');
Использование JavaScript: document.getElementById('gift-close').click();
Попробуйте использовать 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);
}
Использование jQuery:
$('#gift-close').click();
Код, который вы уже пробовали:
document.getElementById("gift-close").click();
... должен работать до тех пор, пока элемент фактически существует в DOM в момент его запуска. Некоторые возможные способы обеспечения включают:
onload
для окна. http://jsfiddle.net/LKNYg/Итак:
$(document).ready(function() {
document.getElementById("gift-close").click();
// OR
$("#gift-close")[0].click();
});
попробовать:
document.getElementById("gift-close").onclick();
или jQuery:
$("#gift-close")[0].onclick();
Используйте этот код, чтобы щелкнуть:
$("#gift-close").click();
Снимок кода ниже!
Пожалуйста, взгляните на эти документы и примеры на 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>
Здесь попробуйте следующее:
$('#gift-close').on('click', function () {
_gaq.push(['_trackEvent','voucher_new','cart',$(this).attr('rel')+'-mask_x_button-inaction']);
});