您的代码不起作用,因为这$.fancybox();
不会告诉fancybox 要打开什么,所以什么也不做。
如果您不想编辑 html 中的每个链接,我会做的是:
1)。ID
向<ul>
标签添加一个,这样我们就可以使用该选择器
<ul id="images">
2)。将 fancybox 绑定到所有<a>
属于您元素的子元素的锚点,#images
例如
var fancyGallery = $("#images").find("a"); // we cache the selector here
fancyGallery.attr("rel","gallery").fancybox({
type: "image"
});
请注意,我们正在rel
为所有锚点动态添加一个属性,因此它们将成为同一画廊的一部分
3)。将一个click
事件绑定到button
(我建议你也给它一个,ID
这样它就不会在将来与其他可能的按钮混淆)触发现有的fancybox脚本,所以使用这个html
<button id="fancyLaunch">Launch Fancybox</button>
使用这个脚本
$('#fancyLaunch').on('click', function() {
fancyGallery.eq(0).click(); // triggers a click
});
请注意,我们使用该方法.eq()
从第一项启动画廊(index
javascript 中的 first 始终为 0)
总而言之,您的整个脚本可能如下所示:
jQuery(document).ready(function($) {
var fancyGallery = $("#images").find("a");
fancyGallery.attr("rel","gallery").fancybox({
type: "image"
});
$('#fancyLaunch').on('click', function() {
fancyGallery.eq(0).click();
});
});
见JSFIDDLE