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 - 通过ajax返回的html中的JS代码未执行

javascript - 从 valums fileuploader 中删除拖放

javascript - jQuery 表单即使返回 true 也不会提交

javascript - Ember : Testing WillDestroyElement Logic of Component in an Integration Test

javascript - Jquery代码错误: Undefined is not a function

javascript - 如何使用 Java 代码从 HTML 中获取变量值?

javascript - 使用 Javascript 或 Jquery 解析 xml 标签属性?

javascript - 扩展 bootstrap jQuery 模态

javascript - 通过 jQuery 中的循环追加一个列表项

javascript - 让 SVG 饼图仅动画一次