Почему мой JQuery не появляется в div? - PullRequest
2 голосов
/ 20 января 2012

Я пытаюсь заставить $ ('# live-demo) .fbwall работать внутри div в модуле facebook. Когда я загружаю скрипт самостоятельно без остального содержимого страницы, он работает нормально. Я делаю что-то не так, что сейчас конфликтует? Я только когда-либо изучал html и css и сейчас пытаюсь освоить некоторые другие языки, так что я знаю, что мне нужно многому научиться. Дайте мне знать, если мне нужно опубликовать какие-либо файлы CSS или JS. Спасибо.

Обновлен HTML для включения изменений, сделанных до сих пор

РЕДАКТИРОВАТЬ Решено. Было слишком много закрывающих тегов и несколько других ошибок.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="keywords" content="This Moment, Studio, Design, Web, Icons, Logos" />
    <meta name="description" content="This Moment Studio is a photography agency that takes amazing photos!" />
    <meta name="author" content="William McKenney" />
    <meta name="robots" content="all" />
    <title>This Moment Studio</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Style" href="css/style.css" />
    <link href="jquery.neosmart.fb.wall.css" rel="stylesheet" type="text/css"/>
    <style type="text/css">
        div#live-demo {
        width:500px;
        height:300px;
        overflow:auto;
    }
    </style>
    <script src="jquery-1.6.1.min.js" type="text/javascript"></script>
    <script src="jquery.neosmart.fb.wall.js" type="text/javascript"></script>
                <script type="text/javascript">
                    $(document).ready(function() {
                        $('#live-demo').fbWall({
                            id:'308294672531766',
                            accessToken:'323594700988256|g0Zr3Y_0tzS6TGo-DFjtNKfiJA8',
                            showGuestEntries:false,
                            showComments:false,
                            max:3,
                            timeConversion:12});
                        });
                </script>
</head>
<body>
    <!-- STATUS BAR -->
    <div id="status-bar">
        <div id="status-bar-content">
            <form action="#search" method="post" id="search-form">
                <p>
                    <input type="text" name="query" value="Search" />
                    <input type="submit" name="submit" value="Search!" />
                </p>
            </form>
            <div id="status-bar-commands">
                <p id="welcome">Welcome, Guest</p>
                <p id="action-bar">
                    <a href="#login" title="Login">Login</a>
                    <a href="#sitemap" title="Sitemap">Sitemap</a>
                    <a href="#license" title="License">License</a>
                </p>
            </div>
        </div>
    </div>
    <!-- HEADER -->
    <div id="header">
        <div id="logo">
            <h1><a href="#home" title="Home Page">This Moment</a></h1>
            <h2>Studio</h2>
        </div>
    </div>
    <!-- CONTENT -->
    <div id="content">
        <!-- TABS -->
        <ul id="tabs">
            <li id="previous">
                <a href="#previous" title="Previous">&lt;</a>
            </li>
            <li id="home" class="current">
                <a href="#home" title="Home">Home</a>
            </li>
            <li id="portfolio">
                <a href="#portfolio" title="Portfolio">Portfolio</a>
            </li>
            <li id="about">
                <a href="#about" title="About">About</a>
            </li>
            <li id="contact">
                <a href="#contact" title="Contact">Contact</a>
            </li>
            <li id="next">
                <a href="#next" title="Next">&gt;</a>
            </li>
        </ul>
        <!-- PAGE WRAPPER -->
        <div id="page-wrapper">
            <!-- SLIDESHOW -->
            <div id="slideshow">
                <div id="slides">
                    <a href="#portfolio.work1" title="See details" class="thumb default-slide">
                        <img src="http://d2o0t5hpnwv4c1.cloudfront.net/336_siteFromScratch/./img/slideshow/1.png" alt="Flex Engine Web Design" class="slideshow-image" />
                    </a>
                    <a href="#portfolio.work2" title="See details" class="thumb">
                        <img src="http://d2o0t5hpnwv4c1.cloudfront.net/336_siteFromScratch/./img/slideshow/2.png" alt="Concept Labs Portfolio" class="slideshow-image" />
                    </a>
                    <a href="#portfolio.work3" title="See details" class="thumb">
                        <img src="http://d2o0t5hpnwv4c1.cloudfront.net/336_siteFromScratch/./img/slideshow/3.png" alt="Everlast Studio" class="slideshow-image" />
                    </a>
                </div>
                <div id="slideshow-commands">
                    <a href="#previous" title="Previous" id="previous-slide">&lt;</a>
                    <a href="#next" title="Next" id="next-slide">&gt;</a>
                    <h4>
                        <a href="#portfolio.work1" title="See details" id="slide-title">
                            Flex Engine Web Design
                        </a>
                    </h4>
                </div>
            </div>
            <!-- MESSAGE -->
            <div id="message">
                <h3>We build great websites!</h3>
                <p>
                    Curabitur nec sem in risus adipiscing feugiat. Etiam elementum malesuada purus.
                    Quisque nec mi eu mauris ornare aliquam. Praesent adipiscing,
                    metus sed luctus condimentum, quam turpis interdum tortor,
                    in dignissim magna urna tempor odio. Integer porttitor. Nam dolor urna,
                    ultricies vitae, porttitor ut, dignissim vitae, elit.
                </p>
                <p id="contact-info">
                    <span id="phone">+33 1 23 45 67 89</span>
                    <span id="address">
                        34, Avenue des Champs-<br />
                        Elys꦳, 75006, Paris,<br />
                        France
                    </span>
                </p>
            </div>
        </div>
        <!-- BLOG MODULE -->
        <div class="module" id="blog">
            <h4 class="module-header-bar">Latest entries from the blog</h4>
            <div class="blog-entry">
                <h5><a href="#blogentry1" title="Vivamus sed risus">Vivamus sed risus</a></h5>
                <p class="meta">By Jonathan Davidson - 05 / 08 / 09</p>
                <blockquote class="content">
                    <p>
                        Vivamus sed risus quis felis sagittis cursus. Duis blandit tristique turpis. Nulla feugiat vehicula metus.
                    </p>
                </blockquote>
            </div>
            <div class="blog-entry">
                <h5><a href="#blogentry2" title="Pellentesque pulvinar">Pellentesque pulvinar</a></h5>
                <p class="meta">By The Team - 05 / 01 / 09</p>
                <blockquote class="content">
                    <p>
                        Pellentesque pulvinar dolor nec orci. Pellentesque scelerisque elit.
                    </p>
                </blockquote>
            </div>
            <div class="blog-entry">
                <h5><a href="#blogentry3" title="Cras in nibh">Cras in nibh</a></h5>
                <p class="meta">By Nicholas Denman - 05 / 01 / 09</p>
                <blockquote class="content">
                    <p>
                        Quisque dapibus, justo a bibendum pellentesque, tellus felis cursus libero, posuere sodales diam ipsum in lorem.
                    </p>
                </blockquote>
            </div>
            <p id="read-more-wrapper">
                <a href="#blog" title="Read More">
                    Read More
                </a>
            </p>
        </div>
        <!-- FACEBOOK MODULE -->
        <div id="live-demo"> 
        </div>  
    </div>
    <div id="footer">
        <div id="footer-image"></div>
        <p id="footer-text">
            Copyright ɠ2009 Roadside Studio<br />
            All Rights Reserved
        </p>
    </div>
</body>
</html>

Ответы [ 2 ]

1 голос
/ 20 января 2012

всегда заключайте ваш код jquery в готовый обработчик, чтобы он выполнялся после завершения загрузки DOM, как

$(document).ready(function(){

//your fb plugin code here
});

или вы можете использовать метод короткой руки

$(function(){
//your code here

});

в качестве альтернативы вы можете поместить код js в конце документа, чтобы он выполнялся после завершения загрузки DOM

0 голосов
/ 20 января 2012

Вам нужно обернуть ваш вызов в обработчик .ready ()

$(document).ready(function () {

 $('#live-demo').fbWall({
                        id:'308294672531766',
                        accessToken:'323594700988256|g0Zr3Y_0tzS6TGo-DFjtNKfiJA8'                                   showGuestEntries:false,
                        showGuestEntries:false,
                        showComments:false,
                        max:3,
                        timeConversion:12});
            });
});

Это происходит потому, что браузер выполняет страницу так же, как вы ее читаете. Так что сверху вниз он выполняется как можно быстрее, что означает, что ваш вызов выполняется до того, как # live-demo может обязательно существовать в DOM.

Как правило, вы хотите дождаться загрузки всего DOM, прежде чем запускать любую логику, которая происходит на странице.

EDIT

Это не было проблемой, как упомянул Уильям (и отредактировал вопрос соответствующим образом), но благодаря некоторой хорошей охоте мы нашли проблему - это можно отследить в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...