我有一些这种格式的html:
<div id="logos" class="downloadlist">
<ul>
<li><a href="/toolkit/logos/download.jpg" data-image="images/toolkit/logos/one.jpg">First Logo</a></li>
<li><a href="/toolkit/logos/download.jpg" data-image="images/toolkit/logos/two.jpg">Second Logo</a></li>
<li><a href="/toolkit/logos/download.jpg" data-image="images/toolkit/logos/three.jpg">Third Logo</a></li>
</ul>
</div>我想一步一步地把它提供给Fancybox like this。
到目前为止,我已经了解到这一点,但它直接不起作用:
downloadList = $('#logos ul li a');
var downloadArray = {};
downloadJSON = '';
$.each(downloadList, function(d)
{
var download = $(this);
var href = download.data('image');
var title = download[0].innerText;
var link = download[0].href;
downloadArray[d] = {};
downloadArray[d].href = href;
downloadArray[d].title = "<a href=\'" + link + "\'>"+title+"</a>";
downloadJSON += JSON.stringify(downloadArray[d])+',';
});
downloadJSON = downloadJSON.slice(0, -1);
$.fancybox.open([downloadArray]);downloadJSON为我提供了:
{"href":"images/toolkit/logos/one.jpg","title":"<a href='http://example.com/toolkit/logos/download.jpg'>First Logo</a>"},{"href":"images/toolkit/logos/two.jpg","title":"<a href='http://example.com/toolkit/logos/download.jpg'>Second Logo</a>"},{"href":"images/toolkit/logos/three.jpg","title":"<a href='http://example.com/toolkit/logos/download.jpg'>Third Logo</a>"}JSON.Stringify- downloadArray对象给了我:
{"0":{"href":"images/toolkit/logos/one.jpg","title":"<a href='http://example.com/toolkit/logos/download.jpg'>First Logo</a>"},"1":{"href":"images/toolkit/logos/two.jpg","title":"<a href='http://example.com/toolkit/logos/download.jpg'>Second Logo</a>"},"2":{"href":"images/toolkit/logos/three.jpg","title":"<a href='http://example.com/toolkit/logos/download.jpg'>Third Logo</a>"}} 任何帮助都将不胜感激。
发布于 2013-01-15 02:08:34
links = [];
$('#logos ul li a').each(function() {
links.push({
href: $(this).attr('data-image'),
title: "<a href=\'" + $(this).attr('href') + "\'>"+$(this).html()+"</a>"
});
});
//JSON.stringify(links);
$.fancybox.open(links);发布于 2013-01-15 08:18:31
我的扩展答案是基于@禤浩焯的答案:
为了根据选择的链接下载(在fancybox中显示)适当的徽标,我们使用API选项index,如以下调整的扩展代码所示:
links = [];
$('#logos ul li a').each(function (indx) {
// Adrain's code tweaked
links.push({
href: $(this).data('image'),
title: "<a href=\'" + $(this).data('image') + "\'>" + $(this).html() + "</a>"
});
// extended to catch click on links
$(this).on("click", function (e) {
e.preventDefault();
$.fancybox.open(links, {
index: indx // starts gallery with index of the clicked link
});
});
});
//JSON.stringify(links);
//$.fancybox.open(links); // would open fancybox on page load请参阅
https://stackoverflow.com/questions/14323922
复制相似问题