ontouchstart和onquo​​uchend在jquery?

时间:2012-09-09 14:26:23

标签: jquery html css html5 touch

我目前正在使用以下内容来处理我想要更改触摸类的每个元素:

ontouchstart="$(this).addClass('select');" ontouchend="$(this).removeClass('select');"

我想知道是否有这样的事情?:

$("#element").touchstart(function(){
    $(this).addClass('select');
},
function(){
   $(this).removeClass('select');
});

我可以列出我想要拥有此属性的所有元素。我已经尝试了很多东西,无法让它发挥作用。

4 个答案:

答案 0 :(得分:15)

我最终只是使用了这个:

$('#nav li').bind('touchstart', function(){
    $(this).addClass('select');
}).bind('touchend', function(){
    $(this).removeClass('select');
});

答案 1 :(得分:11)

没有JQUERY:

element.addEventListener('touchstart',function(e) {
 e.currentTarget.className = "select";
});

使用JQUERY

$('#nav ul li a').on('touchstart', function(){
    $(this).addClass('select');
});

实际上,on()获得比bind()更好的性能,请检查documentation

答案 2 :(得分:1)

我认为您需要使用jQuery Mobile。它有一些规范化的事件,这很可能是你需要的。以下是jQuery Mobile API参考的特殊事件列表:little link

你关心那些:

  

vmousedown

Normalized event for handling touchstart or mousedown events
     

vmousemove

Normalized event for handling touchmove or mousemove events
     

vmouseup

Normalized event for handling touchend or mouseup events

答案 3 :(得分:0)

为什么不为此使用:hover伪类?在我看来,这是nav_li元素的CSS规则的临时更改。