Javascript 无法在jQuery中触发单击元素
我在网页中有一些元素,我想模拟点击。通过以下逻辑可以轻松单击同一页面中的其他元素:Javascript 无法在jQuery中触发单击元素,javascript,jquery,Javascript,Jquery,我在网页中有一些元素,我想模拟点击。通过以下逻辑可以轻松单击同一页面中的其他元素: $('.someClass').trigger('click'); 但是如果我用一个特定的元素来尝试,它就不起作用了。 我尝试向无法单击的元素添加一个单击处理程序,以查看是否可以反向操作=捕获单击而不是触发单击: 成功了。这意味着:选择器是正确的,并且元素存在于DOM中。但是为什么我的点击没有效果呢 我尝试了以下所有方法,但没有成功: 单击元素所在的位置: function simulateClick(x, y
$('.someClass').trigger('click');
但是如果我用一个特定的元素来尝试,它就不起作用了。
我尝试向无法单击的元素添加一个单击处理程序,以查看是否可以反向操作=捕获单击而不是触发单击:
成功了。这意味着:选择器是正确的,并且元素存在于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');
$('.someClass')[0].click();
使用vanilla JS点击:
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');
$('.someClass')[0].click();
很明显,页面会以某种方式阻止并阻止对该元素的所有单击,但是我如何找到导致这种情况的机制呢?该网站使用模糊的JS,我不知道如何绕过它
有什么想法吗?(客户端毕竟在我的领域中^^)向要模拟单击的元素添加单击处理程序
$('.myelementsclass').bind('click', function() {
alert($(this))
});
然后使用您的逻辑触发单击:
$('.myelementsclass').trigger('click');
向要模拟单击的元素添加单击处理程序
$('.myelementsclass').bind('click', function() {
alert($(this))
});
然后使用您的逻辑触发单击:
$('.myelementsclass').trigger('click');
事件可能不是通过jquery绑定的,而是在元素上绑定的。我不确定这是怎么回事,但这对我不起作用:
$('.mycls:eq(0)').trigger('click');
但这确实:
document.querySelector('.mycls').click();
事件可能不是通过jquery绑定的,而是在元素上绑定的。我不确定这是怎么回事,但这对我不起作用:
$('.mycls:eq(0)').trigger('click');
但这确实:
document.querySelector('.mycls').click();
如果您不能单击它,则可能意味着它不可单击,因为在任何事件中,侦听器都没有附加到它。10$表示它有
指针事件:无设置。您的意思是模拟单击它?我尝试在触发一个元素时添加一个单击处理程序,您只需执行传递给click()或on(“click”,…)的任何操作,这就是您想要的吗?可能是您尝试单击的元素位于另一层的后面,请尝试inspect element。因此,您的意思是触发单击不起作用,但是,将处理程序附加到它,然后单击该元素就可以了吗?那么在那种情况下。。。这一定是因为没有附加到所述事件的处理程序。此外,捕获事件与触发事件并不相反。如果您不能单击它,则可能意味着它不可单击,因为没有任何事件侦听器连接到它。10$表示它已设置了指针事件:无。您的意思是模拟单击它?我尝试在触发一个元素时添加一个单击处理程序,您只需执行传递给click()或on(“click”,…)的任何操作,这就是您想要的吗?可能是您尝试单击的元素位于另一层的后面,请尝试inspect element。因此,您的意思是触发单击不起作用,但是,将处理程序附加到它,然后单击该元素就可以了吗?那么在那种情况下。。。这一定是因为没有附加到所述事件的处理程序。此外,捕获事件与触发事件并不相反。