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/

相关文章:

jquery - 选中复选框时启用下拉菜单

javascript - 呈现jQuery自动完成数据中存在的html元素

javascript - 如何像javaScript中的函数一样执行String?

jquery - 如何启用弹出父页面滚动?

asp.net - jQuery ajax请求响应在Internet Explorer中为空

javascript - 删除所有数据属性的功能,需要多次运行

javascript - 当第二行文本字段与第一行文本字段具有相同的值时,如何警告错误

javascript - 当页面等于X时,javascript逻辑运算符不起作用

javascript - 试图在我的 table 上使用jquery.tablesorter插件,但是不起作用

javascript - 发送.ajax之前(JQuery