簡體   English   中英

無法觸發jQuery中的元素單擊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM