0

我有一个 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'属性,但我仍然会发生

有任何想法吗?

4

3 回答 3

0

您为什么不尝试先将该 div 的内容保存到变量中,例如

var my_js_var = <?php echo $content ?> ;

然后只说只有当存储到您的 div 中的内容等于您的“my_js_var”时才调用 resize div 函数

//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)]

}

没有测试出来

告诉我它是否有效..

最好的祝福

于 2012-10-23T20:46:55.397 回答
0

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

<body onload="YourCalculationFunctionHere">

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

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

于 2012-10-24T04:46:17.827 回答
0

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

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

采用

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

作为简写$(document).ready

于 2012-10-30T11:54:22.893 回答