jQuery - 使用标签在<ul><li></li></ul>一列中列出 Flickr 照片



>我有以下代码...

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Flickr</title>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"/>
    <script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#photoform').submit(function () {
                var keyword = $('#keyword').val();
                $('#photolist').html('Please wait...');
                $.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?tags=' + keyword + '&format=json&jsoncallback=?',
                    function (data) {
                        $('#photolist').empty();
                        $.each(data.items, function (index, item) {
                            $('#photolist').append('<li><img src="' + item.media.m + '" align="left"/></li><br />');
                        });
                    }
                );
                return false;
            });
        });
    </script>
    <style type="text/css">
        #photos {
            margin-top: 20px;
        }
        #photos img {
            height: 200px;
            width: 250px;
            margin-right: 10px;
            margin-bottom: 10px;
        }
    </style>
</head>
<body>
    <div data-role="page" id="photos">
        <form method="get" name="photoform" id="photoform">
            Keyword: <input type="text" name="keyword" id="keyword" value="" /><input type="submit" name="findphoto" id="findphoto" value="Find" />
            <ul data-role="listview" data-filter="false" id="photolist"></ul>
        </form>
    </div>
</body>
</html>

我想使用

<ul><li></li></ul>

标签。有关示例,请参阅代码中的 $.getJSON。但是当我运行它时,它不会在一列中吐出照片。它将它们分 5 列吐出。有什么建议吗?

我正在这里查看您的代码的一部分:

$('#photolist').append('<li><img src="' + item.media.m + '" align="left"/></li><br />');

这表明图像将一个接一个地显示。如果是这种情况并且您对此不满意,它应该建议您希望在一行中彼此相邻的图像。

如果是这样,您应该将上面的行更改为下面的行:

$('#photolist').append('<li><img src="' + item.media.m + '" align="left"/></li>');

还要在样式表声明中添加以下内容:

ul#photolist li{
width: 20%;
display: inline-block;
}

最新更新