Hice una página para un cliente e inicialmente estaba trabajando en Chrome y olvidé verificar si funcionaba en Firefox. Ahora, tengo un gran problema porque toda la página se basa en un script que no funciona en Firefox.
Se basa en todos los "enlaces" que tienen un relque lleva a ocultar y mostrar la página correcta. No entiendo por qué esto no funciona en Firefox.
Por ejemplo, las páginas tienen la identificación #menuPage, #aboutPagey así sucesivamente. Todos los enlaces tienen este código:
<a class="menuOption" rel='#homePage' href="#">Velkommen</a>
Funciona perfectamente en Chrome y Safari.
Aquí está el código:
$(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);
});
});
javascript
jquery
html
firefox
Måns Dahlström
fuente
fuente

Respuestas:
Estás declarando (algunos de) tus controladores de eventos incorrectamente:
Necesita que "evento" sea un parámetro para los controladores. WebKit sigue el antiguo comportamiento de IE de usar un símbolo global para "evento", pero Firefox no. Cuando usa jQuery, esa biblioteca normaliza el comportamiento y garantiza que a sus controladores de eventos se les pase el parámetro de evento.
editar - para aclarar: debe proporcionar algún nombre de parámetro; utilizando
eventdeja claro lo que se propone, pero se le puede llamareocupcakeo cualquier otra cosa.Tenga en cuenta también que la razón por la que probablemente debería usar el parámetro pasado de jQuery en lugar del "nativo" (en Chrome, IE y Safari) es que ese (el parámetro) es un contenedor de jQuery alrededor del objeto de evento nativo. El contenedor es lo que normaliza el comportamiento del evento en los navegadores. Si usa la versión global, no lo entiende.
fuente
Es porque olvidó pasar
eventa laclickfunción:En una nota al margen,
ese usa más comúnmente en lugar de la palabra,eventya queEventes una variable global en la mayoría de los navegadores.fuente
ede aprender de jQuery. @Pointy