Задержка загрузки для определенных элементов с Jquery - PullRequest
0 голосов
/ 28 июля 2011

Я нуб JS / JQ, пытающийся отложить загрузку определенных элементов до тех пор, пока не загрузится остальная часть страницы.

В частности, на каждой странице есть несколько списков, содержащих в качестве элементов списка iframes / удаленные сценарии социальных сетей, URL-адреса которых генерируются с помощью 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); ?>&amp;layout=button_count&amp;show-faces=false&amp;width=80&amp;action=like&amp;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-->
                            ')
});

... Что не работает, и я уверен, что это не лучший способ сделать это в любом случае.

Кто-нибудь хочет помочь? Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 августа 2011

Я не эксперт по jQuery, но почему бы не использовать .delay(time)?

0 голосов
/ 28 июля 2011

Вы можете использовать load () (поскольку вы говорите, что это встроенное, я предполагаю, что вы передаете значение из php перед отправкой javascript - все делается на стороне сервера):

$(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>');
     });
});

Takenиз документации:

Событие загрузки отправляется элементу, когда он и все вложенные элементы полностью загружены.Это событие может быть отправлено любому элементу, связанному с URL: изображениям, сценариям, фреймам, фреймам и объекту окна.

...