假设我定义了一个点击处理程序:
$("#foo").click(function(e){
});
我如何在函数处理程序中判断事件是以编程方式还是由用户触发的?
最佳答案
您可以查看事件对象e
。如果事件是由真正的点击触发的,您将拥有 clientX
、clientY
、pageX
、pageY
等在 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/