2012-11-09 101 views
0

有三個圖像,我已經爲每個工具提示。 我想在定時的時間間隔內顯示工具提示,比如說第一個工具提示顯示爲2秒,第二個工具提示顯示爲第二個間隔,等等。jQuery停止()工作的自定義功能?

例如,它可以使用此功能

function cycle(id) { 
    var nextId = (id == "block1") ? "block2": "block1"; 
    $("#" + id) 
     .delay(shortIntervalTime) 
     .fadeIn(500) 
     .delay(longIntervalTime) 
     .fadeOut(500, function() {cycle(nextId)}); 
} 

現在我想是時候moseover行動上的每個圖像的出現停止循環功能,並顯示相應的提示來完成。再次,當鼠標再次離開時,循環功能觸發。

回答

0

如果我的理解正確,比試試這個代碼。如果您懸停圖像,則停止該過程,如果離開圖像則繼續。如果你像jQuery的fadeOut(),slideIn(),...函數一樣實現它們,stop()函數將在自定義函數上工作。

$('#' + id) 
.fadeIn(500, function() { 
    var img = $(this).find('img'), 
     self = $(this), 
     fadeOut = true; 

    img.hover(function() { 
       fadeOut = false;      
      }, 
      function() { 
       window.setTimeout(function() { 
        self.fadeOut(500); 
       }, 2000); 
      } 
    ); 

    window.setTimeout(function() { 
     if (fadeOut === false) { 
      return; 
     } 
     self.fadeOut(500); 
    }, 2000); 
});​