使用 ajax 填充一个联合画廊

populating a unite gallery using ajax

您好,我目前正在尝试使用 ajax 来填充一个联合图库,但是该图库只是挂着一个加载图标,没有显示任何图像,请提供任何帮助,不胜感激

Ajax

$('document').ready(function () {
    var folder = "http://localhost/client%20side%20web%20coursework/files/";

    jQuery("#gallery").unitegallery();

    $.ajax({
        url: folder,
        asynch: false,
        cache: false,
        success: function (data) {
            $(data).find("a").attr("href", function (i, val) {
                if (val.match(/\.(jpe?g|png|gif)$/)) {
                    $("#gallery").append("<img alt='uploaded file' src='" + folder + val + "'data-image='" + folder + val + "'data-description='uploaded file by user'>'");
                }
            });
        }
    });
});

div 我们正在尝试填充

<div id="gallery" style="display:none;">
</div>

不熟悉 unite gallery 的文档可以在这里找到 http://unitegallery.net/index.php?page=documentation#installing_the_gallery

任何帮助将不胜感激

您向包含您的图像的文件夹发出 ajax 请求?是否有 index.php 或 index.html 返回 html? 你的 .append 参数中有一些无用的附加引号,试试这个:

$("#gallery").append("<img alt='uploaded file' src='" + folder + val + "' data-image='" + folder + val + "' data-description='uploaded file by user'>");

并在 ajax 响应后执行 console.log(data),如果你什么都没有,将错误回调添加到你的 ajax 函数和 console.log 错误,或在网络选项卡的浏览器控制台中查看响应

编辑

我认为 jQuery .find 函数不接受任何回调参数,您可以使用 .each 函数:

var $gallery = $("#gallery");
$(data).find("a").each(function(i, el) {
    var val = $(el).attr('href');
    if (val.match(/\.(jpe?g|png|gif)$/)) {
        $gallery.append("<img alt='uploaded file' src='" + folder + val + "' data-image='" + folder + val + "' data-description='uploaded file by user'>");
    }
});
$('document').ready(function(){
    var folder = "http://localhost/client%20side%20web%20coursework/files/";
    $.ajax({
        url : folder,
        asynch : false,
        cache : false,
        success: function (data) {
            var $gallery = $("#gallery");
            var imgsToAppend = '';
            $(data).find("a").each(function(i, el) {
                var val = $(el).attr('href');
                if (val.match(/\.(jpe?g|png|gif)$/)) {
                    imgsToAppend+="<img alt='uploaded file' src='" + folder + val + "' data-image='" + folder + val + "' data-description='uploaded file by user'>";
                }
            });
            if(imgsToAppend){
                $gallery.append(imgsToAppend);
            }
            $gallery.unitegallery();
        }
    });
});

这解决了问题。无论如何感谢您的帮助。