有没有办法判断是否在没有自定义标志的情况下使用jQuery中的代码触发了事件处理程序?

ale*_*lex 3 jquery javascript-events

考虑一下这个jQuery代码......

$('button#my').click(function(event) {
    alert('hello');
});

$('button#my').click();
Run Code Online (Sandbox Code Playgroud)

显然,这会打开一个警报窗口.

但是,我可以用jQuery告诉,如果该事件处理程序是用代码触发的,或者是用户点击它(例如,没有丑陋的标记检查var userClicked = true).

我以为会有一个属性event,但我无法弄明白.

这可能吗?

谢谢.

Nic*_*ver 7

您可以检查event.which,它将undefined用于.click()(或其他触发器)调用...例如:

$('button#my').click(function(event) {
    if(event.which) {
        alert("User click");
    } else {
        alert("triggered click");
    }
});
Run Code Online (Sandbox Code Playgroud)

你可以在这里尝试一下.