click事件和mousedown事件在jquery中一般来说是容易分清楚的,但在某些情况下开发者会优先考虑到click事件,而没能准确的定位事件。当我们在获取鼠标各个键的事件值时,就会出现这样的情况。
简单的概念区分:
click:是指鼠标放在某一个网页元素上时,对该元素触发了点击动作,这个过程即click事件。.click()可以调用一个响应函数,对click事件发生时进行响应,产生一些动作。
mousedown:指你的手指点按下鼠标上的任意键,还没有松开时的过程,这个过程其实不包括键被按下的那一瞬间,这一瞬间是非常短的,mousedown是你按下之后不松开,一直按着的过程。这个过程可以很漫长,和mouseup相比有明显的不同。
最简单的区分两个事件的办法即,一个发生在电脑屏幕上,一个发生在鼠标上。
那么我们在遇到一些具体问题的时候,应该怎样选择这两个不同的事件呢?举一个很简单的例子:我点击了一个展开按钮展开了某元素,现在,我需要一个点击该元素之外的其他区域让它自动收起来。
看上去很简单,我们一看到“点击”二字时首先想到的是如何使用click事件完成这个目标。然而我却选择了mousedown事件,因为在这个过程中,我考虑到只有用户点击鼠标左键触发该动作才是用户想要的结果,用户并不想在点击中键或右键时也有同样的效果,这时我们需要用到一个event.which的判断,在对which的判断时会遇到非常大的问题,具体请看这篇文章和这篇文章,click事件的触发器并没有which的属性,而只有mousedown或者mouseup的触发器(鼠标)才有,因此如果要使用which属性,最好考虑的是mousedown/mouseup事件,而非click事件。
以上是jquery事件中mousedown和click如何区分?的详细内容。更多信息请关注PHP中文网其他相关文章!