Saya telah membuat halaman untuk klien dan saya awalnya bekerja di Chrome dan lupa untuk memeriksa apakah itu berfungsi di Firefox. Sekarang, saya punya masalah besar karena seluruh halaman didasarkan pada skrip yang tidak berfungsi di Firefox.
Ini didasarkan pada semua "link" rel
yang mengarah ke persembunyian dan menampilkan halaman yang benar. Saya tidak mengerti mengapa ini tidak berfungsi di Firefox.
Misalnya halaman memiliki id #menuPage
, #aboutPage
dan seterusnya. Semua tautan memiliki kode ini:
<a class="menuOption" rel='#homePage' href="#">Velkommen</a>
Ini bekerja dengan sempurna di Chrome dan Safari.
Ini kodenya:
$(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
sumber
sumber
Jawaban:
Anda menyatakan (beberapa) penangan acara Anda secara tidak benar:
Anda membutuhkan "peristiwa" untuk menjadi parameter bagi penangan. WebKit mengikuti perilaku lama IE dalam menggunakan simbol global untuk "acara", tetapi Firefox tidak. Saat Anda menggunakan jQuery, pustaka itu menormalkan perilaku dan memastikan bahwa penangan peristiwa Anda diteruskan parameter peristiwa.
edit - untuk memperjelas: Anda harus memberikan beberapa nama parameter; menggunakan
event
memperjelas apa yang Anda inginkan, tetapi Anda dapat menyebutnyae
ataucupcake
atau apa pun.Perhatikan juga bahwa alasan Anda mungkin harus menggunakan parameter yang diteruskan dari jQuery daripada yang "asli" (di Chrome dan IE dan Safari) adalah karena parameter tersebut (parameter) adalah pembungkus jQuery di sekitar objek acara asli. Wrapper inilah yang menormalkan perilaku event di seluruh browser. Jika Anda menggunakan versi global, Anda tidak mengerti.
sumber
Itu karena Anda lupa masuk
event
keclick
fungsinya:Di samping catatan,
e
lebih umum digunakan sebagai lawan kataevent
karenaEvent
merupakan variabel global di sebagian besar browser.sumber
e
dari jQuery! @Pointy