2013-04-05 67 views
3

我有一個關於cookies的問題。 我有一組按鈕,顯示與推送按鈕相關的特定表格。我設置了cookie值,我試圖讓它記住上次查看的內容,這樣用戶在每次關閉頁面時都不必重新選擇所有內容。jQuery有沒有辦法在繼續之前等待對象加載?

if($.cookie('lastviewed') == "value") { 
    $('#Button1').trigger('click'); 
    $('#Button2').trigger('click'); 
} 

按鈕1加載按鈕2,所以上述不起作用,因爲它試圖觸發一些不存在的東西。

有沒有辦法讓它在繼續之前等待它加載?

編輯:我已經在使用document.ready。 單擊按鈕1將按鈕2加載到頁面上,我需要它等待它在按鈕2中完成加載之後,它會嘗試單擊它。

回答

1

你可能會想試試這個太:

$(document).ready(function() { 
    if ($.cookie('lastviewed') == "value") { 
     setTimeout(function() { 
      $('#Button1').trigger('click'); 
      $('#Button2').trigger('click'); 
     }, 100); 
    } 
}); 

100ms的延遲之後,這會導致點擊事件所有的$(document)。就緒()處理程序被調用後。

2

您需要使用document.ready以確保html元素在被javascript/jQuery訪問之前可用。

$(document).ready(function(){ 
    if($.cookie('lastviewed') == "#value") { 
    $('#Button1').trigger('click'); 
    $('#Button2').trigger('click'); 
    }  
}); 

雖然JavaScript提供了當 呈現頁面時執行代碼的加載事件,該事件不會被觸發,直至這樣 圖像已被完全接收的所有資產。在大多數情況下,只要DOM層次已完全構建,就可以運行 腳本。傳遞給.ready()的處理程序保證在DOM準備就緒後執行 ,所以這通常是 附加所有其他事件處理程序並運行其他jQuery代碼的最佳位置。 Reference

+1

我已經在使用document.ready。 按鈕2將不會加載,直到按鈕1被點擊後,所以當時它試圖在按鈕2不存在時點擊兩者。 – NuMs 2013-04-05 08:29:42

相關問題