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。因此,您的意思是触发
单击
不起作用,但是,将处理程序附加到它,然后单击该元素就可以了吗?那么在那种情况下。。。这一定是因为没有附加到所述事件的处理程序。此外,捕获事件与触发事件并不相反。