简体   繁体   中英

Difference between button and which in mouse events

Javascript鼠标事件中的event.buttonevent.which什么区别?

event.button

Indicates which mouse button caused the event.

event.which

According to jQuery's documentation:

...event.which also normalizes button presses (mousedown and mouseupevents), reporting 1 for left button, 2 for middle, and 3 for right. Use event.which instead of event.button.

Difference

In all modern browsers (IE8+) event.button will give you the following values:

0   Specifies the left mouse-button
1   Specifies the middle mouse-button
2   Specifies the right mouse-button

While in IE8 and earlier:

1   Specifies the left mouse-button
4   Specifies the middle mouse-button
2   Specifies the right mouse-button

event.which standardize these results by providing you the following values:

1   Specifies the left mouse-button
2   Specifies the middle mouse-button
3   Specifies the right mouse-button

I'm relatively shy to the last solution despite my upvote. According to the MDN documentation :

This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future

So, MouseEvent.button is still prefered. An interesting (case) alternative could be MouseEvent.buttons which permits you to determine all buttons pressed when the event is triggered.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM