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
элемент.