Это должно помочь вам начать:
HTML:
<input type="button" id="thebutton" value="Do Stuff!" />
Javascript:
var thebutton = document.getElementById("thebutton");
thebutton.ontouchstart = function(e)
{
this.setAttribute('class', 'pressed');
var touches = e.touches; // array of all touch data
var target = touches[0].target; // what DOM element was touched
var pageX = touches[0].pageX; // coords relative to site
var pageY = touches[0].pageY;
var clientX = touches[0].clientX; // coords relative to screen
var clientY = touches[0].clientY;
};
thebutton.ontouchmove = function(e)
{
var touches = e.touches; // same fields as above
var changedTouches = e.changedTouches; // only touches which have changed
};
thebutton.ontouchend = function(e)
{
this.setAttribute('class', '');
// cleanup, if needed
};
Подробнее см .: http://sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/
Стоит отметить, что MobileSafari иногда делает странные вещи с сенсорными событиями и элементами формы (в частности, с полями ввода). Возможно, вы обнаружите, что лучше использовать стиль div, чем фактическую кнопку ввода.
РЕДАКТИРОВАТЬ: Для того, что вы пытаетесь сделать, я думаю, что вы могли бы лучше обслуживать с простыми событиями щелчка, которые обычно работают хорошо для таких вещей, как нажатия кнопок. События касания больше для перетаскивания, точного отслеживания пальцев и т. Д. Попробуйте это:
thebutton.onclick = function(e) { this.setAttribute('class', 'your_class'); };
EDIT2: Теперь я понимаю, что вы просите. Самый простой способ это:
thebutton.ontouchstart = function(e) { this.setAttribute('class', 'pressed'); };
thebutton.ontouchend = function(e) { this.setAttribute('class', ''); };