我遵循并尝试了在相关主题上找到的大多数答案,但在此问题上遇到了问题:Check if event is triggered by a human

但是由于某种原因(我无法弄清楚),我的代码无法正常工作。

与上述回答的问题的唯一区别是我使用了:

$("#try").get(0).click();


代替

$("#try").click();(这对我不起作用,这就是为什么我使用上面的代码的原因)

问题:

$("#try").get(0).click();始终返回人类触发的事件[对象MouseEvent]。

有没有一种方法可以确切地知道单击事件是否是由人为物理触发的,而不更改我使用的事件?

注意:我使用$("#try").get(0).click();事件,因为我正在使用框架来显示和隐藏表行信息(切换)。

目标:一次只打开一个框架,然后关闭其他框架(另一个框架的关闭将由jquery事件触发)。

test code sample:

$("#try").click(function(event) {
    if (event.originalEvent === undefined) {
        alert('not human')
    } else {
        alert(' human');
    }


});

$('#click').click(function(event) {
   // $("#try").click();
    $("#try").get(0).click();
});

最佳答案

尝试使用trigger(),但是我不知道您为什么不使用$("#try").click();以及为什么它不适合您。

$("#try").click(function (event) {
   if (event.originalEvent === undefined) {
     alert('not human')
   } else {
      alert(' human');
   }
});

$('#click').click(function (event) {
  // $("#try").click();
  $("#try").trigger('click');
});


fiddle here

07-24 09:50
查看更多