只是似乎无法让这种情况发生!
$(".fancy").click(function(event) {
event.preventDefault();
var pic = [];
$('.room-thumbnail').each(function(index) {
pic.push('\'' + 'http://localhost' + $(this).attr('href') + '\'' );
});
var pics = '['+ pic.join(', ')+']';
console.log(pics);
// => ['http://localhost/driver/images/produits/denim/sixthjune-7440/sixthjune-7440.jpg', 'http://localhost/driver/images/produits/denim/sixthjune-7440/sixthjune-7440-back.jpg', 'http://localhost/driver/images/produits/denim/sixthjune-7440/sixthjune-7440-closeup1.jpg', 'http://localhost/driver/images/produits/denim/sixthjune-7440/sixthjune-7440-closeup2.jpg']
$.fancybox(pics, {
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'overlayColor' : '#1D1D1D',
'type' : 'image',
'cyclic': true
});
});
如果我手动输入 href url(图片),它就可以工作。
但是当我传递 fancybox 变量( pics )时,我收到 fancybox 错误:
- 无法加载请求的内容。 - 请稍后再试。 -
有人可以告诉我我做错了什么吗?
提前致谢。
您的代码没有任何问题,但有一些您没有考虑的事情:
您的声明var pics = '['+ pic.join(', ')+']';
正在返回一个stringfancybox 无法解析。
你要做的就是转换这样的string转化为 JavaScriptobject
所以 fancybox 可以解析它。有不同的方法可以做到这一点。一种是使用eval()
功能,但可能存在安全问题,因此不建议使用此方法。
由于您使用的是 jQuery,最安全的方法是使用jQuery.parseJSON( json ) http://api.jquery.com/jQuery.parseJSON/
...所以就在您设置变量的行之后pics
var pics = '['+ pic.join(', ')+']';
添加这个将其转换为js对象
pics = jQuery.parseJSON(pics);
这应该够了吧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)