Javascript onClick是鼠标按钮的通用工具吗?
我注意到谷歌在搜索结果中使用了onMouseDown——用于网络跟踪、查看关键词和排名等 我想知道onClick和onMouseDown哪个更好——或者它们都支持以下所有功能:中键、左键、右键(其他按钮,如玩家鼠标)。是否所有浏览器都支持它们,包括手机、平板电脑和所有其他操作系统上的浏览器?首先加载函数是至关重要的。如果javascript失败,HREF将用于SEO和其他UI/UX好处Javascript onClick是鼠标按钮的通用工具吗?,javascript,html,href,onmouseover,onmousedown,Javascript,Html,Href,Onmouseover,Onmousedown,我注意到谷歌在搜索结果中使用了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>