一旦帖子加载了wordpress运行脚本

时间:2012-10-23 20:32:48

标签: javascript jquery wordpress

我有一个wordpress主题,它有一个动态元素,大小由javascrip(jquery)t加载帖子(单个帖子,不是列表页面)

这样:

<div class='some-div'>

<div class='content'>
<?php /* code to load posts */ ?>
</div>

目前我使用javascript获取div.content的高度并将该高度应用于另一个div.some-div

问题出在慢速连接上,高度计算是在内容加载之前完成的

所以,我需要的是只在帖子加载后运行一个javascript函数

目前我推迟了这个功能,让脚本位于页脚,然后使用'defer'属性,但我仍然会发生

任何想法?

3 个答案:

答案 0 :(得分:0)

为什么不尝试先将该div的内容保存到像

这样的变量中
var my_js_var = <?php echo $content ?> ;

然后只使用函数调用resize div函数,只有当存储在div中的内容等于你的'my_js_var'时

//Would be something like:
var my_content = <?php echo $content ?> ; //Downloading the content

//Timer to constantly check if the div is loaded correctly
var timer = window.setTimeout('refresh()',100)

function refresh () {
//if the content of your div is equal to 'my_content' variable
//then call the resize function of the div
//finally clear the timeout [clearTimeout(timer)]

}

没有测试出来

告诉我它是否有效..

祝你好运

答案 1 :(得分:0)

您可以在onload事件中运行计算,以确保帖子中的图像,文本等已完成加载。

<body onload="YourCalculationFunctionHere">

不要使用jquery的.ready()方法进行计算,因为它会在加载DOM之后运行,而不是在加载页面(包含图像,文本等)之后运行。

http://www.w3schools.com/jsref/event_onload.asp

答案 2 :(得分:0)

只是回答任何人都有同样的问题。

我在dom加载之前运行了这个函数,一个简单的错误很容易解决。

使用

$(function(){
  // code here
});

作为$(document).ready

的简写