2014-09-24 21 views
1

我正在爲自己的投資組合工作。該網站在Chrome瀏覽器,Safari瀏覽器甚至最新的IE瀏覽器中都表現出色。但Firefox似乎「躲閃」我的代碼。這很難描述,但是如果你在兩個瀏覽器中打開同一個網站,菜單滾動不起作用,項目不能打開,並且在底部輸入字段似乎也被打破了(但是當刪除樣式)。Firefox無法處理我的jQuery

我試圖改變jQuery版本,重新安排我的腳本,甚至重新安裝firefox。似乎沒有任何工作。我爲此瘋狂。

有沒有人遇到過這個問題?你是如何解決它的?

該網站的網址是:http://eugan.com

+0

您必須通過事件以防止'event.preventDefault();' – Sam1604 2014-09-24 09:55:50

回答

1

scrollTo函數的定義,像這樣:

function scrollTo(id) 
{ 
    // Scroll 
    event.preventDefault(); 
    $('html, body').animate({scrollTop: $("#"+id).offset().top},'slow'); 

} 

,並調用它像這樣:

$('.welcome').click(function(e){ 
    scrollTo('welcome'); 
}); 

正如你所看到的,你正在傳遞'welcome'或另一個字符串,但在scrollTo函數中,您嘗試調用event.preventDefault()

如果你要改變scrollTo以下:

function scrollTo(event, id) 
{ 
    // Scroll 
    event.preventDefault(); 
    $('html, body').animate({scrollTop: $("#"+id).offset().top},'slow'); 

} 

和方式,你就打電話:

$('.welcome').click(function(e){ 
    scrollTo(e, 'welcome'); 
}); 

你應該有更多的運氣。

我不確定你輸入的問題是什麼,恐怕。

+0

非常感謝您提供這個豐富的解決方案!它工作完美。我通過刪除填充和添加高度來解決自己的輸入問題。這似乎解決了這個問題。 但是,該項目沒有開放。我認爲這可能是同樣的問題。將嘗試添加類似於我的「openPage」腳本的東西。 – superior 2014-09-24 10:10:19

1

你在你的JavaScript有這個功能

function scrollTo(id) 
{ 
    // Scroll 
    event.preventDefault(); 
    $('html, body').animate({scrollTop: $("#"+id).offset().top},'slow'); 

} 

事件不確定時,該功能被激發,所以,這是調用的方法是不是正確..您可以在F12工具的Console選項卡中看到此錯誤,並顯示錯誤「ReferenceError:event is not defined」

通過允許執行其他代碼,Firefox不會幫助您解決這種情況。其他瀏覽器顯然這樣做。

您需要重構此JavaScript函數,然後它應該一起來!

+0

謝謝!不能相信我錯過了控制檯中的錯誤。 :) – superior 2014-09-24 10:11:28

+0

不用擔心!祝你好運! – SpaceBison 2014-09-24 10:38:39

0

不錯的網站。發生了什麼事是您與href='#'的鏈接正在打破您的滾動操作。

這是瀏覽器正常行爲,當您點擊鏈接href='#'時,滾動到頂部。

您需要禁用此默認事件,並且可以在鏈接上將e.preventDefault()添加到您的所有.click()綁定中。

在初始化所有.click()綁定之前,應該這樣做。

$("a[href='#']").each(function(){ 
    $(this).click(function(e){e.preventDefault()}); 
}); 
+0

謝謝你幫助我!非常感謝! – superior 2014-09-24 10:10:55