jquery - 在 jQuery 中,如何区分程序点击和用户点击?

标签 jquery

假设我定义了一个点击处理程序:

$("#foo").click(function(e){

});

我如何在函数处理程序中判断事件是以编程方式还是由用户触发的?

最佳答案

您可以查看事件对象e。如果事件是由真正的点击触发的,您将拥有 clientXclientYpageXpageY 等在 e 中,它们将是数字;这些数字与触发点击时的鼠标位置有关,但即使通过键盘启动点击,它们也可能会出现。如果事件是由 $x.click() 触发的,那么您将不会在 e 中获得通常的位置值。您还可以查看 originalEvent property ,如果事件来自 $x.click(),则不应存在。

也许是这样的:

$("#foo").click(function(e){
    if(e.hasOwnProperty('originalEvent'))
        // Probably a real click.
    else
        // Probably a fake click.
});

还有一个可以玩的小沙箱:http://jsfiddle.net/UtzND/

关于jquery - 在 jQuery 中,如何区分程序点击和用户点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6674669/

相关文章:

javascript - 以编程方式调整文本区域的大小而不修改最小大小

c# - 如何将存储在字符串中的函数添加到 jquery .click 事件

javascript - Preg_replace 在 Content PHP 中获取图片链接

javascript - jquery 减少小数;如何从 html 页面运行多个输入

javascript - 如何使用angular js滚动div的底部

jquery - "VIDEOJS: WARN: Player "媒体 "is already initialized"当它不是

javascript - 使用 jquery 将 dt/dd 列表转换为 li 列表?

javascript - PHP header ("Location:index.html") 或 php 中的 javascript 无法正常工作

javascript - 我们如何在 Vanilla JS 中转换 jQuery $i.find ('div.element:first' )

javascript - Jquery touchend 在手指释放之前触发