2013-08-16 15 views
1

需要幫助。 我在懸停事件上做了一些垂直滾動的菜單,有3個菜單(主頁,下載,聯繫人)。懸停事件上的滾動效果已經奏效,但點擊事件發生時,當其他菜單被點擊時,會出現一些錯誤(一些菜單不能向下滾動/用動畫滾動到灰色一側)。錯誤發生時,我點擊了一些序列菜單: 1.下載然後聯繫 2.接觸然後下載 3.接觸然後回家向上滾動菜單樣式

這是我在jsFiddle

代碼,當我上運行的代碼firefox與螢火蟲一些錯誤出現後,我做鼠標懸停和鼠標點擊菜單上。

錯誤打印屏幕:

http://i.stack.imgur.com/PchXy.png

感謝提前:)

回答

0

scroll事件的凍結背後的原因,當你點擊菜單上的是,在點擊,菜單變爲禁用狀態,因此您的background-pos永遠不會更改,因此,方法css(bg-pos)將變爲undefined,並且您再次嘗試執行(undefined).split(),這是不可能的,因此動畫會凍結。

你需要做的是點擊,你需要再次啓用菜單。這是通過這樣的代碼來完成:

$.fn.stopBG = function (x, y, speed) { 
    if(event.which == 1){ 
     $("#home").removeClass('disable1').addClass('enable1'); 
     $("#download").removeClass('disable2').addClass('enable2'); 
     $("#contact").removeClass('disable3').addClass('enable3'); 
    } 
    var pos = this.css('background-position').split(' '); 

我已經更新了你的小提琴,看到這一個:http://jsfiddle.net/VSTAm/3/

我已經試過此修復程序在Chrome ...它工作正常那裏。

+0

謝謝你的幫助,但仍然不爲我難過:) –

+0

當我試圖在Firefox 23火,但我發現了一些錯誤「的ReferenceError工作:沒有定義事件\t 如果(event.which = = 1){「。 –