我有一个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'属性,但我仍然会发生
任何想法?
答案 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之后运行,而不是在加载页面(包含图像,文本等)之后运行。
答案 2 :(得分:0)
只是回答任何人都有同样的问题。
我在dom加载之前运行了这个函数,一个简单的错误很容易解决。
使用
$(function(){
// code here
});
作为$(document).ready