2014-10-27 185 views
-1

我需要在我的頁面上呈現HTML後運行一個函數(因爲我需要獲取特定動態div的高度)。我嘗試了幾種方法,但我無法獲取window.load(我正在使用Chrome)。window.load不會觸發

我已經將下面的所有代碼放在我的TypeScript ViewModel的構造函數中。

這不起作用:

$(window).on('load', function() { 
    ...code... 
}); 

而且也沒有這樣的:

$(window).load(function(){ 
    ...code... 
}); 

或者這樣:

window.addEventListener('load', function() { 
    ...code... 
}); 

任何想法,爲什麼沒有這些工作?如果還有其他方法可以做到這一點,我願意提供建議。

+0

你用什麼方法來確定這些嘗試不起作用?這些都確實爲「加載」事件創建了一個處理程序。 (假設你已經導入了jQuery,並且沒有任何其他錯誤,你是否嘗試添加一些'console.log()'調用?) – Pointy 2014-10-27 16:46:11

+1

窗口加載事件僅在頁面生命期間發生一次。如果您在加載新內容後嘗試收聽更改,則窗口加載事件不是您正在查找的內容。 – 2014-10-27 16:48:05

+0

除了查看我的代碼應該產生的結果之外,我在方法內部放置了一個斷點。爲了調試的目的,我還在函數中加入了一個基本的'alert'。 – tnw 2014-10-27 16:48:31

回答

-2

嘗試把它下面裏面:

$(document).ready(function() { 
    jQuery.event.add(window, "load", myFunction); 

    myFunction() { 
     ...code... 
    } 
}); 

這爲我工作,當我不得不在渲染之後操縱基於其高度<div>

+0

AFAIK document.ready是預渲染或DOM構建之前。我試過這個,當我的函數中的代碼試圖尋找需要首先渲染的div時,找不到它。渲染完成後,我可以進入控制檯,並使用相同的代碼找到它沒有問題。 – tnw 2014-10-27 16:50:24

+0

對不起,我錯過了我不得不添加的下一步 - 現在編輯答案... – danmullen 2014-10-27 16:52:24

+0

謝謝。我沒有downvote,但這仍然行不通。凱文B最終給了我一個有效的建議。 – tnw 2014-10-27 17:34:09