Спасибо, Уильям,
Я удалил jQtouch и добавил код для функции крана только с jQuery,
$(document).ready(function() {
var delay = 100;
var hovertime = null;
var hoverdelay = null;
$("#list a").bind('touchstart mouseover', function(){
clearTimeout(hoverdelay);
hovertime = new Date().getTime();
var $el = $(this).add("*", this);
hoverdelay = setTimeout(function(){
$el.addClass("active");
}, delay);
});
$("#list a").bind('touchend mouseup', function() {
clearTimeout(hoverdelay);
var now = new Date().getTime();
var $el = $(this).add("*", this);
if(now < hovertime + delay) {
$el.addClass("active");
setTimeout(function(){
$el.removeClass("active");
}, delay);
} else {
$el.removeClass("active");
}
});
$("#list a").bind('touchmove touchcancel mouseout', function() {
clearTimeout(hoverdelay);
var $el = $(this).add("*", this);
$el.removeClass("active");
});
});
Я положил образец здесь: http://fun.r4dius.net/temp/iphone.html
это работает в основном так:
- при нажатии он переключается на «активный» только после 100 мс тайм-аута, так что если вы просто хотите пролистать страницу, она не будет активироваться при каждом нажатии,
- при переключении на «активный» все дочерние элементы (*) элемента также устанавливаются на «активный»
- при окончании крана
- если он «активный», «активный» класс удаляется,
- если это быстрое нажатие (когда «touchend» происходит до того, как было установлено «active»), мы все равно переключаемся на «active» и удаляем его после задержки в 100 мс, просто чтобы показать, что оно было записано
- если мы перемещаемся во время записи, «активный» класс удаляется
Вот последняя проблема, с которой я столкнулся: /
По какой-то причине, если я коснусь, то я начну двигаться в то же самое время, когда элемент установлен в активное состояние (после задержки 100 мс), он остается активным до тех пор, пока не произойдет «касание», вместо удаления активного класса. как следует, кто-то понимает почему?
Я протестировал это на странице предварительного просмотра jQtouch и не смог воспроизвести его,
но если я использую jQtouch на своей странице, проблема возникает так же: /