我希望fanybox打开页面上所有可能的媒体内容链接。
假设我在页面上有三个锚点链接,
HTML
<a href="https://www.google.com">Google (Just a link to google)</a>
<a href="http://fancyapps.com/fancybox/demo/1_b.jpg">Image 1</a>
<a href="http://fancyapps.com/fancybox/demo/2_b.jpg">Image 2</a>
第一个只是google(不是图片)的链接,其他是图片链接(jpg),可能是vimeo,youtube或fancybox可以显示的任何其他内容链接。
的Javascript
// Fancybox initializing
$("a")
.attr('rel', 'gallery')
.fancybox();
/*
When I try to trigger first link of gallery,
it doesn't open the gallery, because it's not a media content
that fancybox can open.
Demo: http://jsfiddle.net/Py2RA/1599/
*/
$("button").click(function() {
$("a").eq(0).trigger("click");
});
/*
But when I trigger second or third one gallery shows up.
Demo: http://jsfiddle.net/Py2RA/1600/
*/
$("button").click(function() {
$("a").eq(1).trigger("click");
});
实际上内容是动态的,假设我在页面上有五十个链接,我不知道哪一个只是指向另一个页面,YouTube链接,图像链接,vimeo链接或其他内容的链接。
我只想把fancybox打开带有可能的画廊,或者让我知道它可以显示哪个链接。
答案 0 :(得分:0)
...试
$("button").click(function() {
$("a").gt(0).trigger("click");
});
答案 1 :(得分:0)
这就是我实现问题的方法,
//this part of code check if the link can be shown in fancybox and set fancybox-group data attribute.
$("a").each(function() {
var url = this.href || '',
mediaDefaults = $.fancybox.helpers.media.defaults,
type = false,
what,
item,
rez,
params;
if ($.fancybox.isImage(url) || $.fancybox.isSWF(url)) {
$(this).attr("data-fancybox-group", "fancyboxlinks");
} else {
for (what in mediaDefaults) {
if (mediaDefaults.hasOwnProperty(what)) {
item = mediaDefaults[what];
rez = url.match(item.matcher);
if (rez) {
$(this).attr("data-fancybox-group", "fancyboxlinks");
}
}
}
}
});
// Now here you can initialize fancybox here
// Selector just select the link that can be used for fancybox.
$("a[data-fancybox-group]").fancybox();
$("button").click(function() {
$("a[data-fancybox-group]").eq(0).trigger("click");
});