Делает mousedown/mouseup в jquery для ipad?

Я использую текущий код:

$('body').mousedown(function() {
        $('div#extras').fadeTo('fast', 1);
});

$('body').mouseup(function() {
        $('div#extras').delay(2000).fadeTo(1500, 0);
});

Это отлично работает в сафари, но когда я загружаю его и проверяю на ipad, он не работает?

Ответы

Ответ 1

Я узнал, как это сделать для ipad для тех, кто заинтересован:

Вместо кода, который я использовал в моем вопросе, вы должны использовать:

$('body').bind( "touchstart", function(e){
        $('div#extras').fadeTo('fast', 1);
});

&

$('body').bind( "touchend", function(e){
        $('div#extras').delay(2000).fadeTo(1500, 0);
});

Ответ 2

Не совсем.

Apple Docs

Цитата:

Кликабельный элемент - это ссылка, элемент формы, область карты изображения или любой другой элемент с обработчиками mousemove, mousedown, mouseup или onclick. Прокручиваемый элемент - это любой элемент с соответствующим стилем переполнения, текстовыми областями и прокручиваемыми элементами iframe. Из-за этих различий вам может понадобиться изменить некоторые из ваших элементов на интерактивные элементы, как описано в разделе " Создание элементов интерактивных", чтобы получить желаемое поведение в iPhone OS.

(акцент мой)

Ответ 3

Не отвечая на ваш вопрос, но может быть удобен для людей, которые пришли сюда просто для поиска "jQuery mousedown/mouseup on ipad"

Я всегда использую этот маленький трюк:

$(element).hover(function() {
   // Do something
});

Это вызывает прикосновение при использовании iPad и отменяет действие при нажатии вне элемента, поскольку это событие зависания. Так, например:

// Assuming the element has 'opacity: 0' in CSS

$(element).hover(function() {
   $(this).animate({'opacity': 1}, 200);
});

Создает эффект затухания "по щелчку" и эффект "выцветания" на мыши.

Ответ 4

Старый пост, но есть универсальное решение:

$('body').on('mousedown touchstart',function(e){
    $('div#extras').fadeTo('fast', 1);
});
$('body').on('mouseup touchend',function(e){
    $('div#extras').delay(2000).fadeTo(1500, 0);
});

Вы заметите, что я использую mousedown с touchstart и mouseup с touchend. Это покрытие мобильного и настольного использования.