Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onClick是鼠标按钮的通用工具吗?_Javascript_Html_Href_Onmouseover_Onmousedown - Fatal编程技术网

Javascript onClick是鼠标按钮的通用工具吗?

Javascript onClick是鼠标按钮的通用工具吗?,javascript,html,href,onmouseover,onmousedown,Javascript,Html,Href,Onmouseover,Onmousedown,我注意到谷歌在搜索结果中使用了onMouseDown——用于网络跟踪、查看关键词和排名等 我想知道onClick和onMouseDown哪个更好——或者它们都支持以下所有功能:中键、左键、右键(其他按钮,如玩家鼠标)。是否所有浏览器都支持它们,包括手机、平板电脑和所有其他操作系统上的浏览器?首先加载函数是至关重要的。如果javascript失败,HREF将用于SEO和其他UI/UX好处 或 或者看起来很明显(我不这么做,因为我的客户对空间中的每个角色都很重要) 值得注意的是,如果您点击

我注意到谷歌在搜索结果中使用了onMouseDown——用于网络跟踪、查看关键词和排名等

我想知道onClick和onMouseDown哪个更好——或者它们都支持以下所有功能:中键、左键、右键(其他按钮,如玩家鼠标)。是否所有浏览器都支持它们,包括手机、平板电脑和所有其他操作系统上的浏览器?首先加载函数是至关重要的。如果javascript失败,HREF将用于SEO和其他UI/UX好处



或者看起来很明显(我不这么做,因为我的客户对空间中的每个角色都很重要)



值得注意的是,如果您点击链接并按Enter键,
单击事件将触发,但
鼠标向下
/
鼠标向上
不会触发。

主要区别在于,
鼠标向下
无论按下哪个鼠标按钮都会触发,
onclick
仅对鼠标左键触发—这很可能是您想要的。

W3C规范确定是否应为所有按钮触发事件,只是应在事件对象的“按钮”属性上指示按下的按钮。至少在Chrome下,除了主(在我的例子中,是左)鼠标按钮外,“点击”不会触发任何东西。来检查一下

onclick、onmousedown和onmousedup代表不同的行为,它们都不是本质上的“更好”:单击是按下然后释放按钮,mousedown是“向下”,mouseup是“释放”。通常,如果您正在执行一些拖放操作,这将是相关的

指示在鼠标向下和鼠标按下后onclick激发

此外,理想情况下,应该使用技术而不是在标记中附加事件处理程序

如果javascript失败,HREF将用于SEO和其他UI/UX好处


如果事件处理程序正在执行重定向/AJAX请求或类似操作,如果您不希望浏览器在触发事件后跟随链接,则应使用该方法。

使用
onmousedown
而不是
onclick
的一个原因是前者会显著地(如0.4s)更快的响应。@dfsq引文需要…可以找到我看到数字的文章,但即使是简单的逻辑也表明
mousedown
触发更快。单击仅在mousedown和mouseup之后触发。在我的Phonegap+jQuery移动应用程序中,切换到
mousedown
是非常明显的。因此,这取决于代码、硬件等的繁重程度。因此,即使我按下鼠标右键,onmousedown也会运行该功能。这似乎很奇怪,因为你可能会期望人们在链接之间按tab键,然后在他们希望访问的链接上按enter键——除非谷歌仅将其用于跟踪链接。
<a href="http://www.site.com" onclick="doMyFunctionFirst();">
JavaScript loaded before the href URL
</a>
<a href="http://www.site.com" onMousedown="doMyFunctionFirst();">
JavaScript loaded before the href URL
</a>
<a href="http://www.site.com" onclick="doMyFunctionFirst();" onMouseDown="doMyFunctionFirst();">
JavaScript loaded before the href URL
</a>