de l'événement.preventDefault() de travail dans Chrome, mais pas dans Firefox / IE

Je sais qu'il y a déjà beaucoup de questions sur ce sujet, mais j'ai lu beaucoup d'entre eux et encore ne pouvais pas obtenir mon script fonctionne ...

J'ai un très de base diaporama qui peut être vu ici : www.screations.net/wm (il y a 3 diaporamas, j'ai le même problème sur tous les 3 d'entre eux)

Voici le code que j'utilise pour la navigation :

<a href="#"><img src="images/arrow_right.png" class="nextSlide" onclick="nextSlide();"/></a>
<a href="#"><img src="images/arrow_left.png" class="prevSlide" onclick="prevSlide();"/></a>

Et le jQuery (simplifié) :

function nextSlide()
{
    $('.slide').eq(0).fadeIn(fadeSpeed);
    event.preventDefault();
}

function prevSlide()
{
    $('.slide').eq(0).fadeOut(fadeSpeed);
    event.preventDefault();
}

Maintenant cela fonctionne très bien sur Chrome, mais sur Firefox /IE, tandis que le script fonctionne toujours, il recharge la page. Comment puis-je résoudre ce problème s'il vous plaît ? :/

Merci

  • Vous ne pouvez pas attendre de event.preventDefault() de travail si vous ne passez pas le cas dans la fonction...
  • ...et si vous ne vous attendez pas à un event paramètre à vos fonctions.
  • Si vous utilisez jQuery, pourquoi ne pas l'utiliser pour attacher les gestionnaires d'événements correctement (au lieu de inline attributs)?
  • Le vrai mystère ici, c'est pourquoi ce code fonctionne dans Chrome, il ne devrait pas. Il a probablement à voir avec vous attacher les gestionnaires d'événements pour img des balises qui n'ont pas de valeurs par défaut. event n'est pas global, il doit être passé dans le gestionnaire comme un paramètre. function nextSlide(event) { /* now event actually exists! */ }. Comme d'autres l'ont mentionné l'aide onclick est une mauvaise pratique, donner un id à la a tag et utiliser jQuery pour joindre l'événement: <a id="next">, jQuery('#next').click(nextSlide);.
InformationsquelleAutor Kanjiro | 2014-05-04