Comment arrêter les événements de marteau de tirer des éléments internes?

voix
0

J'ai trouvé quelques réponses à cette question, mais n'a pas fonctionné pour moi.

J'utilise Marteau js pour un diaporama. Les éléments du diaporama peuvent contenir des images et des liens. Je setted pointer-events: nonesur les images. Mais je ne peux pas le faire sur les liens, évidemment.

Impossible de trouver un moyen de laisser des liens à cliecked mais éviter les événements de marteau sur eux. Ma mise en œuvre actuelle est assez basique (code tiré d'une plus grande classe):

if(this.options.touch_enabled){
  this.hm = new Hammer(this.data_box, {
    recognizers: [
      [Hammer.Swipe,{ direction: Hammer.DIRECTION_HORIZONTAL }]
      ,[Hammer.Pan,{ direction: Hammer.DIRECTION_HORIZONTAL }, ['swipe']]
    ]
    ,domEvents: true
  });

  this.hm.on('panleft', function(e){
    [...]
  }.bind(this));
  this.hm.on('panright', function(e){
    [...]
  }.bind(this));
}// touch

Les événements de panoramique avec le feu dans les liens internes au lieu de data_box (le conteneur), de sorte que le script ne fonctionne pas parce que deltaX repose sur les liens à la place du conteneur.

Toute solution? J'ai essayé domEvents: trueet joué un peu avec stopPropagationet preventDefault, mais aucun travaillé.

Créé 27/11/2018 à 15:20
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Une solution possible est tout simplement de revenir faux ondragstart:

$('#my_box a').on('dragstart', function(e){
  return false; // or, e.preventDefault();
});

Cela permettra d'éviter de bulles, de sorte que le mouvement horizontal normal / prévu fonctionnera, mais vous serez toujours en mesure de cliquer sur les liens.

Vous préférerez probablement d'étendre ce comportement à d' autres éléments aussi, tels que les images, mais si possible, vous pouvez simplement utiliser la pointer-events: none;règle sur eux au lieu.

img{
   pointer-events: none;
}
Créé 27/11/2018 à 16:36
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more