Как правильно применять FancyBox2 к изображениям страницы - PullRequest
0 голосов
/ 14 февраля 2012

Я пытаюсь использовать Fancybox2 для набора из 20 изображений, но изображения открываются без какого-либо эффекта.Вот полный код:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Flickr Feed</title>
    <link href="../_css/site.css" rel="stylesheet">
    <link rel="stylesheet" href="../fancybox2/source/jquery.fancybox.css" type="text/css" media="screen" />

    <style>
        .image {
            float: left;
            padding: 10px;
            border: solid 1px white;
            margin: 0 30px 30px 0;
        }
        .image:hover {
            border-color: red;
            background-color: rgb(204,204,204);
        }


    </style>

    <script src="../_js/jquery-1.7.1.min.js"></script>

    <!-- Add fancyBox -->

    <script type="text/javascript" src="../fancybox2/source/jquery.fancybox.pack.js"></script>

    <script>
        $(document).ready(function() {
            var URL = "http://api.flickr.com/services/feeds/groups_pool.gne";
            var ID = "35034346867@N01";
            var jsonFormat = "&format=json&jsoncallback=?";

            var ajaxURL = URL + "?id=" + ID + jsonFormat;
            $.getJSON(ajaxURL,function(data)
                    {
                        $('h1').text(data.title);
                        $.each(data.items,function(i, photo)

                                {
                                    var photoHTML = '<span class="image">';
                                    photoHTML += '<a class="fancybox" rel="gallery1" href="' + photo.media.m.replace('_m', '_b') + '">';
                                    photoHTML += '<img src="' + photo.media.m.replace('_m', '_s') + '"></a>';


                                    $('#photos').append(photoHTML);

                                }


                        );//end each

                        $('#photos').fancybox(
                                {
                                    openEffect:'none',
                                    closeEffect:'none'
                                }
                        );
                    }

            );//end get JSON


        }); // end ready
    </script>

</head>
<body>
<div class="wrapper">
    <div class="header">
        <p class="logo">JavaScript <i>&</i> jQuery <i class="mm">The<br>Missing<br>Manual</i></p>
    </div>
    <div class="content">
        <div class="main">
            <h1>Flickr Images</h1>
        <div id="photos"></div>
        <br class="clearLeft">
        </div>
    </div>
    <div class="footer">
        <p>JavaScript &amp; jQuery: The Missing Manual, by <a href="http://sawmac.com/">David McFarland</a>. Published by <a href="http://oreilly.com/">O'Reilly Media, Inc</a>.</p>
    </div>
</div>
</body>
</html>

Я получаю сообщение об ошибке «Запрошенное содержимое не может быть загружено. Повторите попытку позже» из сценария FancyBox2.

1 Ответ

0 голосов
/ 14 февраля 2012

Переместите код инициализации fancybox в getJSON обратный вызов методов, потому что там вы добавляете все изображения.И селектор для плагина fancybox неправильный, я считаю, что он должен быть #photos.Попробуйте это.

       $.getJSON(ajaxURL,function(data)
                {
                    $('h1').text(data.title);
                    $.each(data.items,function(i, photo)

                            {
                                var photoHTML = '<span class="image">';
                                photoHTML += '<a class="fancybox" rel="gallery1" href="' + photo.media.m.replace('_m', '_b') + '">';
                                photoHTML += '<img src="' + photo.media.m.replace('_m', '_s') + '"></a>';


                                $('#photos').append(photoHTML);

                            }


                    );//end each
                    $('#photos').fancybox(
                       {
                           openEffect:'none',
                           closeEffect:'none'
                        }
                    );
                }

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