[英]Cannot trigger click on element in jQuery
我在網頁中有一些要模擬點擊的元素。 可以通過以下邏輯輕松單擊同一頁面中的其他元素:
$('.someClass').trigger('click');
但是,如果我嘗試使用特定元素,則無法正常工作。 我試圖將單擊處理程序添加到無法單擊的元素,以查看是否可能發生反向操作= 捕獲單擊而不是觸發單擊 :
$('.someClass').on('click', function (event) {
console.log('element was clicked');
});
有效。 這意味着:選擇器正確,並且元素存在於DOM中。 但是,為什么我的點擊沒有效果?
我嘗試了以下所有方法,但均未成功:
單擊元素所在的位置:
function simulateClick(x, y) {
$(document.elementFromPoint(x, y)).click();
}
var element = $('.someClass')[0];
var bodyRect = document.body.getBoundingClientRect(),
elemRect = element.getBoundingClientRect(),
voffset = elemRect.top - bodyRect.top;
hoffset = elemRect.left - bodyRect.left;
console.log('Element is ' + voffset + ' vertical pixels from <body>');
console.log('Element is ' + hoffset + ' horizontal pixels from <body>');
simulateClick(hoffset, voffset);
首先解除所有事件的約束:
$('.someClass').unbind();
$('.someClass').trigger('click');
使用香草JS單擊:
$('.someClass')[0].click();
對我來說很明顯,頁面以某種方式阻止並阻止了對該元素的所有單擊 ,但是我如何找到負責該元素的機制? 該網站使用模糊的JS,我不知道如何規避它?
有任何想法嗎? (客戶端畢竟是我的領域^^)
該事件可能不是通過jquery綁定的,而是通過元素綁定的。 我不確定那是怎么回事,但這對我不起作用:
$('.mycls:eq(0)').trigger('click');
但是這樣做:
document.querySelector('.mycls').click();
將單擊處理程序添加到要模擬單擊的元素。
$('.myelementsclass').bind('click', function() {
alert($(this))
});
然后使用您的邏輯觸發點擊:
$('.myelementsclass').trigger('click');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.