ontouchstart и ontouchend в jquery?

в настоящее время я использую следующее для каждого элемента, который я хочу изменить класс on touch:

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

мне было интересно, есть ли что-то подобное?:

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

что я смогу перечислить все элементы, которые я хочу иметь это свойство. Я пробовал так много вещей и не могу заставить его работать.

4 ответов


Я закончил тем, что просто использовал это:

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

без JQUERY:

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

С JQUERY

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

На самом деле, На () получить лучшую производительность, чем bind (), проверьте документация


Я думаю, вам нужно использовать jQuery Mobile. У него есть некоторые нормализованные события, которые, вполне возможно, вам нужны. Вот список специальных событий из ссылки API jQuery Mobile:ссылка.

вы заботитесь о тех, кто:

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

почему бы вам не использовать :hover псевдо-класс для этого? Мне кажется, что это временное изменение правил CSS nav_li элемент.