2012-08-10 102 views
1

有人可以幫助我如何延遲這個功能嗎?我該如何延遲功能

$('#customer_quote').lightbox_me({ 
     centered: true, 
     closeSelect: ".close", 
     onClose: function(){ 
      $('div.error').remove() 
      } 
     }) 

}); 

我想要此燈箱在7秒後打開。

+0

使用setTimeout()http://www.electrictoolbox.com/using-settimeout-javascript/ – Onheiron 2012-08-10 15:29:20

+1

其他資源:https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout – Nope 2012-08-10 15:32:55

回答

8

使用setTimeout()

setTimeout(lightbox, 7000); 

function lightbox() { 
    $('#customer_quote').lightbox_me({ 
      centered: true, 
      closeSelect: ".close", 
      onClose: function(){ 
       $('div.error').remove() 
       } 
      }) 

    }); 
} 
+0

can你爲我分解代碼?所以我知道發生了什麼? @Rory – breezy 2012-08-10 15:36:46

+1

代碼和你原來的完全一樣,兩個不同之處在於我將它封裝在一個函數中 - 「lightbox()」,如果需要,可以將其更改爲更相關的東西。重要的部分是'setTimeout()'。您提供了一個運行函數的方法,以及定義函數何時被調用的延遲(以毫秒爲單位)。 – 2012-08-10 15:38:39

+0

謝謝! @rory! – breezy 2012-08-10 15:41:54

4

setTimeout一個鏡頭:

setTimeout(function() { 
    $('#customer_quote').lightbox_me({ 
     centered: true, 
     closeSelect: ".close", 
     onClose: function() { 
      $('div.error').remove() 
     } 
    }); 
}, 7000);​ 
3
setTimeout(function(){ 
$('#customer_quote').lightbox_me({ 
     centered: true, 
     closeSelect: ".close", 
     onClose: function(){ 
      $('div.error').remove() 
      } 
     }) 

}); 

}, 7000); 
1

使用setTimeout

var delayedFunction = function() { 
    /* your code */ 
} 

setTimeout(delayedFunction, 7000); 

第二個參數代表的是毫秒數。

還要注意,這引起了異步事件。你的代碼的執行將而不是setTimeout停止7秒。

如果您想在延遲後執行其他代碼,則必須在事件觸發時在delayedFunction中執行此操作。

+0

這將繼續調用'delayedFunction()'直到調用clearInterval()。我不認爲這是OP想要的。 – 2012-08-10 15:32:28

+0

@siidhesh對不起,我在發佈答案後大約一秒鐘將'setInterval'編輯爲'setTimeout'。我經常在我最近使用的代碼中使用它,所以認爲錯字:) – Imp 2012-08-10 15:34:21