Работает mousedown /mouseup в jquery для ipad?
Я использую текущий код:
$('body').mousedown(function() {
$('div#extras').fadeTo('fast', 1);
});
$('body').mouseup(function() {
$('div#extras').delay(2000).fadeTo(1500, 0);
});
Это прекрасно работает в сафари, но когда я загружаю его и проверяю на ipad, это не работает?
4 ответа
Я узнал, как это сделать для ipad для тех, кому интересно:
Вместо кода, который я использовал в моем вопросе, вы должны использовать:
$('body').bind( "touchstart", function(e){
$('div#extras').fadeTo('fast', 1);
});
&
$('body').bind( "touchend", function(e){
$('div#extras').delay(2000).fadeTo(1500, 0);
});
Не совсем.
Цитата:
Кликабельный элемент - это ссылка, элемент формы, область карты изображения или любой другой элемент с обработчиками mousemove, mousedown, mouseup или onclick. Прокручиваемый элемент - это любой элемент с соответствующим стилем переполнения, текстовыми областями и прокручиваемыми элементами iframe. Из-за этих различий вам может потребоваться изменить некоторые из ваших элементов на интерактивные элементы, как описано в разделе " Создание элементов интерактивных", чтобы получить желаемое поведение в iPhone OS.
(акцент мой)
Старый пост, но есть универсальное решение:
$('body').on('mousedown touchstart',function(e){
$('div#extras').fadeTo('fast', 1);
});
$('body').on('mouseup touchend',function(e){
$('div#extras').delay(2000).fadeTo(1500, 0);
});
Не совсем отвечаю на ваш вопрос, но может пригодиться людям, которые пришли сюда просто для поиска jQuery mousedown/mouseup на ipad.
Я всегда использую этот маленький трюк:
$(element).hover(function() {
// Do something
});
Это срабатывает при касании при использовании iPad и отменяет действие при щелчке за пределами элемента, поскольку это событие при наведении курсора. Так, например:
// Assuming the element has 'opacity: 0' in CSS
$(element).hover(function() {
$(this).animate({'opacity': 1}, 200);
});
Создает эффект затухания "при щелчке" и эффект затухания "при наведении мыши".