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