Fiz uma página para um cliente e inicialmente estava trabalhando no Chrome e esqueci de verificar se estava funcionando no Firefox. Agora, estou com um grande problema porque a página inteira é baseada em um script que não funciona no Firefox.
É baseado em todos os "links" que possuem um rel
que leva a ocultar e mostrar a página certa. Não entendo por que isso não está funcionando no Firefox.
Para páginas da instância tem o id #menuPage
, #aboutPage
e assim por diante. Todos os links possuem este código:
<a class="menuOption" rel='#homePage' href="#">Velkommen</a>
Está funcionando perfeitamente no Chrome e Safari.
Aqui está o 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
fonte
fonte
Respostas:
Você está declarando (alguns de) seus manipuladores de eventos incorretamente:
Você precisa de "evento" para ser um parâmetro para os manipuladores. O WebKit segue o antigo comportamento do IE de usar um símbolo global para "evento", mas o Firefox não. Quando você está usando jQuery, essa biblioteca normaliza o comportamento e garante que seus tratadores de evento recebam o parâmetro do evento.
editar - para esclarecer: você deve fornecer algum nome de parâmetro; usando
event
deixa claro o que você pretende, mas você pode chamá-loe
oucupcake
ou qualquer outra coisa.Observe também que o motivo pelo qual você provavelmente deve usar o parâmetro passado do jQuery em vez do "nativo" (no Chrome, IE e Safari) é que esse (o parâmetro) é um wrapper jQuery em torno do objeto de evento nativo. O wrapper é o que normaliza o comportamento do evento nos navegadores. Se você usar a versão global, não entenderá.
fonte
É porque você se esqueceu de passar
event
para aclick
função:Em uma nota lateral,
e
é mais comumente usado em oposição à palavra,event
poisEvent
é uma variável global na maioria dos navegadores.fonte
e
de aprender no jQuery! @Pointy