点击JavaScript和jQuery中的源代码,人工还是自动?

Sae*_*ati 4 javascript jquery events click dom-events

我们都知道您可以使用以下方法之一模拟元素上的click或任何其他事件:

$('#targetElement').trigger('eventName');
$('#targetElement').click();
Run Code Online (Sandbox Code Playgroud)

我遇到过一种情况,我应该知道如何点击一个元素.我应该知道它是通过代码自动点击还是按下鼠标按钮.无论如何我可以在没有黑客或变通办法的情况下做到这一点吗?我的意思是,浏览器的事件对象,JavaScript或jQuery中是否有任何内容可以告诉我们是否已经通过人为操作或代码启动了点击?

cdh*_*wie 6

试试这个:

$('#targetElement').click(function(event, generated) {
    if (generated) {
        // Event was generated by code, not a user click.
    } else {
        // Event was generated by a user click.
    }
});
Run Code Online (Sandbox Code Playgroud)

然后,为了使这项工作,你必须像这样触发它们:

$('#targetElement').trigger('click', [true]);
Run Code Online (Sandbox Code Playgroud)

看到这个jsfiddle.


ale*_*lex 5

签出event.which,它将被undefined代码触发。

$(document).click(function(event) {
    if (event.which) {
       // Triggered by the event.
    } else {
       // Triggered with code.
    }
});
Run Code Online (Sandbox Code Playgroud)

jsFiddle