假设我定义了一个点击处理程序:
$("#foo").click(function(e){
});
在函数处理程序中,我如何判断事件是以编程方式触发还是由用户触发?
最佳答案
您可以查看事件对象 e
。如果该事件是由真正的点击触发的,您将得到 clientX
、 clientY
、 pageX
、 0x251812231343 141 和 2143141 之类的数字 141 和 2143 等 2141 等数字 213 等。这些数字与触发点击时的鼠标位置有关,但即使点击是通过键盘启动的,它们也可能存在。如果事件是由 pageY
触发的,那么您将不会在 e
中获得通常的位置值。您还可以查看 $x.click()
property ,如果事件来自 e
,则不应该存在。
也许是这样的:
$("#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/