How to implement an onmousedown and onmouseup on an iPhone touch screen
Asked Answered
T

2

43

I've very new to HTML/JavaScript but am learning…

I want to make a button on an iPhone that runs a JavaScript command when it is pressed and another when it is released. I tried to do this using onmousedown and onmouseup properties, but this does not work the same on iPhone.

<input type="image" onmousedown="command_press()" onmouseup="command_release()" src="images/UP-Dark.png" alt="" title="" />

Could someone please tell me how to do the same thing on the iPhone?

Tenaille answered 9/1, 2014 at 1:2 Comment(0)
M
49

The equivalent for onmousedown on touchscreen devices is ontouchstart, and the equivalent of onmouseup is ontouchend.

If you would also like to detect dragging, you could use ontouchmove which is fired every time you move your finger after touching the screen.

Misread answered 9/1, 2014 at 1:4 Comment(1)
Note this will fire twice if you use like element.onmousedown = element.onkeydown = element.ontouchstart = function() { /* event handler... */ }. Replacing the mouse and touch event with the onpointerdown instead, as recommended in Zectbumo's answer, fixes this problem.Methedrine
A
42

You might be interested in onpointerup and onpointerdown events which will work on both touch and non touch devices. Check browser support

Ataliah answered 23/5, 2018 at 12:43 Comment(1)
Zectbumo, you are a life saver. ThanksCumulus

© 2022 - 2024 — McMap. All rights reserved.