jQuery - 检测以编程方式触发的更改事件

GST*_*TAR 5 javascript jquery

change当用户更改给定SELECT元素时,我有一个 jQuery事件。然而,该事件也可能由第三方脚本触发。我想要做的是检测事件是以编程方式触发还是由用户触发。

我已经在这个问题中尝试了公认的解决方案检查事件是否由人类触发 但请注意,此答案中的 JSFiddle 是针对click事件而不是change事件。

为了演示我修改了小提琴并创建了这个:http : //jsfiddle.net/Uf8Wv/231/

如果您在最新的 Firefox 或 Chrome 中尝试此操作,您将看到human即使以编程方式触发事件时也会显示警报。

我试过了,event.originalEvent.isTrusted但这不适用于所有浏览器。任何人都可以帮忙吗?

bra*_*don 1

我添加了 mouseenter 和 mouseleave 事件。这个想法是,如果单击与鼠标指针位于元素上方同时发生,则它是人类。请参阅: http: //jsfiddle.net/Uf8Wv/232/

$("#try").mouseenter(function(event) {
    mouseover = true;
});
// ... etc.
Run Code Online (Sandbox Code Playgroud)

我想不出其他办法了。