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