2010-09-12 56 views
0

我想運行一些代碼,當我的計時器停止時將啓動特定的動畫,但是我試圖讓它啓動。當定時器耗盡時,jquery啓動動畫

代碼:

if($('#popup_msg').length) { 
    var timer = 0; 
    $('#popup_msg').bind({ 
    mouseenter: function() { 
    timer = 0; 
    console.log(timer); 
    }, 
    mouseleave: function(){ 
    timer += 100; 
    console.log(timer); 
    } 
    }); 

    timer += 100; 

    console.log(timer); 

    if(timer == 5000) { 
    $('#popup_msg').delay(5000).slideUp(); 
    } 
} 

在此先感謝您的幫助!

+2

因爲這個數字永遠不會超過100?對於每一個mouseenter,邏輯上都必須是一個鼠標,所以這個數字總是會自動重置。不完全確定你在這裏試圖做什麼 – 2010-09-12 02:46:08

+0

這段代碼是全部錯誤..也許你應該告訴我們extaly你想達到什麼目標,然後我們可以告訴你如何調整你的代碼。提供重要的細節,例如鼠標離開時發生的事情,並輸入以及什麼時候應該觸發動畫。 – prodigitalson 2010-09-12 03:47:46

+0

不好意思解釋發生了什麼。我有一個彈出消息,淡入視圖向用戶顯示一條消息。此消息目前在5秒內設置爲slideUp,但我希望能夠在用戶將鼠標懸停在彈出消息上時停止滑動消息。當用戶的鼠標離開彈出消息時,計數器重新開始。那有意義嗎? – dennismonsewicz 2010-09-13 01:33:05

回答

0

我可以使用下面的代碼

$('#popup_msg').prepend('<p>Hello World</p>').slideDown('slow', function(){ 
       var t = $(this); 
       t.mouseenter(function(){ 
        t.stop(); 
       }).mouseleave(function(){ 
        t.delay(5000).slideUp(); 
       }); 
      }).delay(5000).slideUp(); 

,如果你知道這樣做的更好的方法,請讓我知道看着辦吧!