est-ce que mousedown / mouseup en jquery fonctionne pour l'ipad?

j'utilise le code actuel:

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

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

cela fonctionne très bien en safari, mais quand je le charge et le vérifier sur l'ipad, il ne fonctionne pas?

34
demandé sur Annie 2010-07-22 00:20:33

4 réponses

j'ai trouvé comment faire pour le ipad pour ceux qui sont intéressés:

au lieu du code que j'ai utilisé dans ma question, vous utiliseriez:

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

&

$('body').bind( "touchend", function(e){
        $('div#extras').delay(2000).fadeTo(1500, 0);
});
80
répondu Annie 2010-07-21 21:00:48

pas exactement.

Apple Docs

citation:

un élément cliquable est un lien, un élément de forme, une zone de carte d'image, ou tout autre élément avec mousemove, mousedown , mouseup , ou onclick handlers. Un élément déroulant est tout élément avec le style de débordement approprié, les zones de texte, et les éléments d'iframe scrollable. En raison de ces différences, vous pourriez avoir besoin de changer certains éléments de cliquable éléments, comme décrit dans la rubrique la réalisation des Éléments Cliquables ," pour obtenir les le comportement de l'iPhone OS.

(l'emphase est mienne)

7
répondu scunliffe 2010-07-21 21:01:28

pas vraiment répondre à votre question, mais peut être pratique pour les gens qui sont venus ici juste pour chercher "jQuery mousedown / mouseup sur ipad "

j'utilise toujours ce petit truc:

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

cela déclenche le toucher lors de l'utilisation d'un iPad et inverse l'action en cliquant à l'extérieur de l'élément car il s'agit d'un événement de vol stationnaire. Ainsi par exemple:

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

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

crée un fondu dans l'effet 'on click', et un effet fade out 'sur mouseup'.

6
répondu Jeffrey Roosendaal 2015-01-29 11:10:01

Vieux post, mais il n'y a de solution universelle:

$('body').on('mousedown touchstart',function(e){
    $('div#extras').fadeTo('fast', 1);
});
$('body').on('mouseup touchend',function(e){
    $('div#extras').delay(2000).fadeTo(1500, 0);
});
0
répondu Ivijan Stefan Stipić 2018-04-02 07:01:19