9
votes

Empêcher le navigateur pop sur l'événement TAPHOLD

dans une application Web basée sur jQuery-Mobile, comment puis-je empêcher le menu du navigateur par défaut de figurer sur "Tap Tenir". Maintenant .. P>

$(".task_row").bind('taphold',function(event, ui){
    event.preventDefault();
    $("#slide_down_menu").trigger('click');
});


2 commentaires

Êtes-vous sûr que ce n'est pas un menu de clic droit? Quel navigateur? Essayez d'écouter menu contextuel événement et .preventdefault (); renvoyer false; dessus


Si je comprends bien, @augtur suggère la solution comme décrit ici: Stackoverflow.com/Questtions/30775237/... a travaillé dans tous mes cas avec des appareils tactiles


6 Réponses :


0
votes

Qu'en est-il de l'utilisation de l'événement AOUTUTOUCHSTART CODE>? Je suis sûr que j'ai utilisé cela pour empêcher les interactions iPad par défaut de se produire.

$(".task_row").bind('touchstart', function(event, ui){
    event.preventDefault();
    $("#slide_down_menu").trigger('click');
});


0 commentaires

0
votes

Tu étais assez proche de ça. Le code correct est: xxx


0 commentaires

2
votes

Le problème est que l'événement "Taphold" que vous lie est un événement personnalisé déclenché par JQuery Mobile, ce n'est donc pas le même événement qui déclenche le comportement par défaut du navigateur.

Si le menu par défaut que vous essayez d'éviter est celui qui vous permet de "ouvrir" ou "Copier" l'URL, une solution est de ne pas utiliser une balise . Si vous utilisez une étendue ou une DIV, vous pouvez lier une fonction ONTAP qui changera l'emplacement du navigateur et votre événement TAPHOLD ne sera pas interrompu avec le comportement par défaut.


0 commentaires

0
votes

Je viens de décoller le lien et j'ai appliqué CSS pour le faire ressembler à un et utilisé ce

$. Mobile.changepage ("#main", {transition: "diapositive"});

Mais je l'ai déjà eu lié à un événement de clic indiquant un bouton Supprimer ... Plus de menu contextuel


0 commentaires

1
votes

J'ai découvert que vous devez désactiver le clic avec le bouton droit de la souris.

$(function(){

    document.oncontextmenu = function() {return false;};

    $(document).mousedown(function(e){

        if ( e.button == 2 )
        { 
            alert('Right mouse button!'); 
            return false; 
        }

        return true;
    });
});


0 commentaires

11
votes

Utilisez CSS:

a {
    -webkit-touch-callout: none !important; 
}


2 commentaires

Cela a fonctionné pour moi. Mon problème était pareil. Je souhaite éviter l'utilisateur de toucher et de maintenir certains des liens. Qui est atteint par ce CSS.


Fonctionne génial sur iOS y a-t-il un équivalent Android que quelqu'un sait-il?