ReferenceError: l'événement n'est pas défini d'erreur dans Firefox
J'ai fait une page pour un client et j'ai d'abord été de travailler dans google Chrome, et vous avez oublié de vérifier si elle travaillait dans Firefox. Maintenant, j'ai un gros problème parce que l'ensemble de la page est basée sur un script qui ne fonctionne pas dans Firefox.
Il est basé sur tous les "liens" qui ont une rel
qui conduit à masquer et afficher la page de droite. Je ne comprends pas pourquoi cela ne fonctionne pas dans Firefox.
Par exemple les pages ont l'id #menuPage
, #aboutPage
et ainsi de suite. Tous les liens ont ce code:
<a class="menuOption" rel='#homePage' href="#">Velkommen</a>
Il fonctionne parfaitement sur Chrome et Safari.
Voici le code:
$(document).ready(function(){
//Main Navigation
$('.menuOption').click(function(){
event.preventDefault();
var categories = $(this).attr('rel');
$('.pages').hide();
$(categories).fadeIn();
});
//HIDES and showes the right starting menu
$('.all').hide();
$('.pizza').show();
//Hides and shows using rel tags in the buttons
$('.menyCat').click(function(event){
event.preventDefault();
var categori = $(this).attr('rel');
$('.all').hide();
$(categori).fadeIn();
$('html,body').scrollTo(0, categori);
});
});
- Il serait vraiment utile si vous voulez expliquer exactement ce que vous voulez dire quand vous dites qu'il "ne fonctionne pas". Ce ne arriver? Les erreurs? Mauvaise mise en page? Un mauvais comportement?
- Voir aussi Pourquoi est - '"événement" variable disponible, même lorsqu'il n'est pas passé en paramètre?
Vous devez vous connecter pour publier un commentaire.
Vous êtes déclarant (une partie de) vos gestionnaires d'événements de manière incorrecte:
Vous avez besoin de "l'événement" être un paramètre pour les gestionnaires. WebKit suit d'IE à l'ancien comportement de l'aide d'un symbole mondial "événement", mais Firefox ne fonctionne pas. Lorsque vous êtes à l'aide de jQuery, la bibliothèque normalise le comportement et s'assure que vos gestionnaires d'événements sont passés le paramètre d'événement.
modifier — à préciser: vous devez fournir certains nom du paramètre; à l'aide de
event
fait clairement ce que vous souhaitez, mais vous pouvez l'appelere
oucupcake
ou quoi que ce soit d'autre.Remarque aussi que la raison pour laquelle vous devriez probablement utiliser le paramètre transmis à partir de jQuery à la place des "indigènes" (sous Chrome et IE et Safari), c'est que l'un (le paramètre) est un jQuery wrapper autour de la native de l'objet événement. L'emballage est ce qui normalise le comportement de l'événement sur tous les navigateurs. Si vous utilisez la version globale, vous n'avez pas l'obtenir.
C'est parce que vous avez oublié de passer en
event
dans leclick
fonction:Sur une note de côté,
e
est plus couramment utilisé par opposition à la paroleevent
depuisEvent
est une variable globale dans la plupart des navigateurs.e
de jQuery! @Pointu