我是一个JS / JQ菜鸟试图延迟加载某些元素,直到页面的其余部分加载完毕。
具体来说,每页有几个列表包含社交媒体iframes /远程脚本作为列表项,其网址是用php生成的。
我最好的猜测是这样的(内联):
$(document).ready(function(){
$('ul.post-meta-bottom').append('
<li class="like-button">
<iframe class="fblikebutton" src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode($this_permalink); ?>&layout=button_count&show-faces=false&width=80&action=like&colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="overflow:hidden; width:80px; height:30px"></iframe>
</li><!--like-button-->
<li class="tweet-button">
<a href="http://twitter.com/share" class="twitter-share-button" data-url="<?php echo $this_permalink; ?>" data-text="<?php echo $this_title; ?>" data-count="horizontal" data-via="" data-related="">Tweet</a>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
</li><!--tweet-button-->
<li class="reddit-button">
<script type="text/javascript">
reddit_url = "<?php echo urlencode($this_permalink); ?>";
reddit_title = "<?php echo $this_title; ?>";
reddit_target= "gaming";
</script>
<script type="text/javascript" src="http://www.reddit.com/static/button/button1.js"></script>
</li><!--reddit-button-->
')
});
......哪些不起作用,我确信无论如何都不是最好的方法。
有人愿意帮忙吗?谢谢!
答案 0 :(得分:0)
你可以使用load()(因为你说这是内联的,我想你在发送javascript之前回复了php的值 - 一切都在服务器端完成):
$(document).ready(function(){
$('.post-meta-bottom').load(function(){
$(this).append('<ul>
<li><?php echo facebook_iframe_stuff; ?></li>
<li><?php echo reddit_javascript_stuff; ?></li>
<li><?php echo dynamic_twitter_link; ?></li>
<li><?php echo etc_etc; ?></li>
</ul>');
});
});
取自文件:
当load元素和所有子元素都有时,load事件被发送到元素 已完全装满。此事件可以发送到任何元素 与URL相关联:图像,脚本,框架,iframe和 窗口对象。
答案 1 :(得分:0)
我不是jQuery专家,但为什么不使用.delay(time)
?