FancyBox通过AJAX获取图片的href

FancyBox通过AJAX获取图片的href,第1张

FancyBox通过AJAX获取图片的href

好吧,您没有做错任何事情,但是在这种情况下有很多因素要考虑

首先,通过ajax调用,您将获得:

var dataX = data.responseText;

并且该

responseText
属性以字符串形式获取响应数据,因此fancybox将显示该
字符串 而不是图像 数组

解决方法是将此类 字符串 转换为javascript 对象,
以便fancybox可以对其进行解析。有不同的方法可以做到这一点。一种是使用该

eval()
功能,但可能存在安全问题,因此不建议使用此方法。

由于使用的是jQuery,最安全的方法是使用jQuery.parseJSON(json),但是必须确保将转换格式正确的JSON字符串。

就您而言,您的“ getfile.php”文件似乎正在呈现此格式

{href:'/gallery/galleries/gallery1/wallpapers_by_ellin-30711.jpg'},....

但格式正确的JSON字符串应如下所示:

{"href":"/gallery/galleries/gallery1/wallpapers_by_ellin-30711.jpg"},...

注意强制性 双引号

一旦确定

data.responseText
返回的 字符串 如下:

data.responseText='{"href":"/gallery/galleries/gallery1/wallpapers_by_ellin-30711.jpg"},{"href":"/gallery/galleries/gallery1/wallpapers_by_ellin-27082.jpg"}, etc ....'var dataX = data.responseText;

那么您可以1)。分割 字符串 ,2)。将每个分隔的元素转换为javascript 对象, 然后3)。将其放入对象 数组 ,例如:

var dataXsplit = dataX.split(',');var dataXarrayObj = new Array(), i;for(i in dataXsplit){ dataXarrayObj[i] = jQuery.parseJSON(dataXsplit[i]);}

之后,您可以执行以下 *** 作以使用适当的对象 数组 触发fancybox
(检查fancybox文档中的API方法):

var img = dataXarrayObj;$.fancybox(img, opts);

或简单地

$.fancybox(dataXarrayObj, opts);

请注意,您不需要将 数组 括在

[]
方括号中



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5560358.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存