jquery 检测浏览器自动单击

o8x7eapl  于 2022-12-12  发布在  jQuery
关注(0)|答案(2)|浏览(144)

我在实现我的jQuery插件有一些问题。我需要一个插件,显示我的一些元素(弹出),并隐藏它,当我点击这个元素的边界。
我实现了这个插件。但是我在弹出窗口中遇到了一些问题。当我计算点击元素的坐标时,我使用了pageXpageY属性。
但当我尝试使用ENTER键提交表单时,发生了一些有趣的事情。当我按ENTER键时,浏览器触发了提交按钮上的“单击”事件,但此按钮的pageXpageY等于0。在event.target中,我看到了我的按钮。
当我自己点击提交按钮时-一切正常。
问:我如何检测谁点击了这个按钮?用户还是浏览器?(没有任何尖峰,如检测输入的回车键等)
另外:正如你所看到的here事件是不同的(当点击提交并按ENTER键时)。但差异是如此之小...我只看到'detail'属性被设置为0,当我们通过ENTER键提交表单时。Detail属性是鼠标事件在元素上的点击量。
这是检测提交的唯一方法吗?正确吗?

dxxyhpgq

dxxyhpgq1#

如果您要将click处理函数绑定到click事件,然后以编程方式调用click以及从用户click调用click,并且希望在处理函数中区分这两个事件,则可以检查eventObject.originalEvent,它是在用户click中设置的,而不是在.click()调用中设置的。
示例:
$('#el').click(function(evt){ if(evt.originalEvent){ //user click } else { // .click() call } });

r3i60tvu

r3i60tvu2#

pageX == 0 AND pageY == 0的测试怎么样?
或者更好的是,假设它是一个表单(从你的帖子中可以看出),为什么不使用.submit()而不是.click()呢?

相关问题