2016-02-01 53 views
0

如何在元素完全加載後執行點擊事件?如何在jQuery元素完全加載後執行點擊事件?

以下代碼旨在爲此目的將加載事件附加到ul標記,但它不起作用。

jQuery(function($){ 
    $('.nav-tabs').on('load', function() { 
     // Breakpoint A: Control never gets here 
     if (typeof (Storage) === "undefined") 
      return; 
     $(localStorage.setItem("CanTabId")).click(); 
    }) 
    // Breakpoint B: No click event seems to be attached 
}) 

在我的jQuery的無知,我能想到的若干問題的解釋:

  1. 該事件就未安裝。我支持這一點,我發現ul在Breakpoint B沒有點擊事件。我想jQuery可能會以其他方式處理事件,但似乎不太可能。
  2. 事件已附加,但ul的加載事件已發生。
  3. jQuery對頁面稍後做的事情已經刪除了點擊事件。

注意 - 此事件的工作原理:

$('.nav-tabs li a').on('click', function() {...)) 

我一直沒能找到SO,或任何一個答案。

有人能告訴我正確的方法來做到這一點?非常感謝。

+0

您能爲我們創建JSfiddle嗎?這將使它更好,我們來調試:) –

+0

在第一:localStorage.setItem('myCat','湯姆');之後你可以:localStorage.getItem('myCat'); –

+0

只有少數元素具有加載事件... img,iframe等。如果使用ajax進行加載,請使用ajax回調 – charlietfl

回答

1

我實際上並不知道「元素加載」事件是否仍然支持;但是無論哪種方式,實際上你都不需要它,因爲你已經在執行document ready event handler。這應該是足夠的:

$(function() { 
    // document ready has fired - all your elements should have loaded. 
    if (typeof (Storage) === "undefined") 
     return; 

    $(localStorage.getItem("CanTabId")).click(); 
}) 

Here's a fiddle that demonstrates

也是一個可能的錯誤,你試圖setItem附加click事件處理程序 - 應該是getItem

$(localStorage.getItem("CanTabId")).click(); 
相關問題