2012-07-18 69 views
0

我是我的問題很簡單,但它很大程度上避開我。我使用jQuery的功能進行元素閃光燈而變量是假的,並隱藏在真實:使用懸停將變量設置爲true jquery

function flasher(bl){ 
    if(!bl){ 
    setInterval(function(){ 
      $(".flash").fadeToggle("slow"); 
      }, 300); 
    } 
} 
var bl = false; 
$(document).ready(function(){ 
    $(".flash").on("hover", function(){ 
     bl = true; 
    }); 

     flasher(bl); 
}); 

當我使用警報,但它確實顯示功能運行,我得到真正的,但我無法看到我的錯誤。使用螢火蟲bl值保持不真實。我已經嘗試過全球bl和var bl,但都保持不變。感謝您的幫助。

回答

2

試試這個:

function flasher(){ 
     setInterval(function(){ 
     if(!bl){ 
       $(".flash").fadeToggle("slow"); 
     } 
     }, 300); 
} 

var bl = false; 
$(document).ready(function(){ 
    $(".flash").hover(function(){ 
     bl = true; 
    }, function() { 
     bl = false; 
    }); 
    flasher(); 
}); 
+0

我不知道在哪裏設置這個接受,我總是非常有禮貌,對那些幫助,他們的幫助非常感激,我依靠這個網站很多幫助和學習。驗收完成,再次感謝所有 – 2012-07-18 10:46:02

+0

更多的東西我必須丟失,因爲bl的值始終保持爲假。 @羅迪克,你的作品,但不是我必須使用的布爾值。 – 2012-07-18 11:07:31

+0

抱歉,bl不應該傳遞到閃光燈功能。看我最後的編輯。 – tekilatexee 2012-07-18 11:45:08

1

你這裏的問題是,你的準備函數只運行一次,在一開始,因此你的函數閃光只運行一次。

您需要在每次更改變量狀態時運行它。

$(document).ready(function(){ 
    var interval; 
    $(".flash").on("hover", function(){ // hoverin 
     interval = setInterval(function(){ 
       $(".flash").fadeToggle("slow"); 
      }, 300); 
    }, function(){ // hoverout 
     clearInterval(interval); 
     $(".flash").fadeOut("slow"); 
    }); 
}); 

此外,在你的間隔你使用300毫秒的間隔,你的fadeToggle是緩慢的(這是600毫秒)。這意味着當你已經開始下一個動畫時,你的淡入淡出動畫還沒有結束。即使在清除間隔後,動畫也會被加擾並繼續閃爍幾秒鐘。

另外,正如你已經被告知,如果你打算繼續使用StackOverflow尋求幫助,你應該遵循它的規則,並接受有效的答案。

+0

感謝您在「緩慢」的延遲時間內正面向上 – 2012-07-19 08:42:33