javascript - 无法触发对 jQuery 中元素的点击

标签 javascript 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');

使用 vanilla JS 来点击:

$('.someClass')[0].click();

我很明显该页面以某种方式阻止并阻止对该元素的所有点击,但我如何才能找到对此负责的机制?该网站使用混淆 JS,我不知道如何规避它?

有什么想法吗? (客户端毕竟是我的境界^^)

最佳答案

事件可能不是通过 jquery 绑定(bind)的,而是在元素上。我不确定那是怎么回事,但这对我不起作用:

$('.mycls:eq(0)').trigger('click');

但这确实:

document.querySelector('.mycls').click();

关于javascript - 无法触发对 jQuery 中元素的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31856392/

相关文章:

jquery - 使用数据库 Codeigniter 的 JSON RPC 服务

javascript - jQuery 验证插件 - 按名称验证隐藏字段

javascript - jQuery 隐藏选项元素

jquery - 当我单击数据表中的下一页时,我的 jquery 选择器不再工作

Javascript大数组挂起

javascript - Event.observe(window, "load", function(){..} v/s window.onload = function(){..}

javascript - JSONP脚本插入和回调功能的程序协助

javascript - 下拉选择选项显示价格?

javascript - 付款方式结帐期间Opencart错误 “SyntaxError: Unexpected token <”

javascript - 作为原型(prototype)的旧对象