2014-10-27 101 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