栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

FancyBox通过AJAX获取图片的href

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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);

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

[]
方括号中



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569081.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号