用于动态添加元素和多个图库的 fancybox 3 选择器
fancybox 3 selector for dynamically added elements and multiple gallery
在 fancybox v.3 的文档中说 "Sometimes you might need to bind fancybox to dynamically added elements. Use selector..."。一切正常,但我需要禁用画廊的自动分组并自定义多个画廊选择器。
默认行为:
$().fancybox({
selector : '[data-fancybox]:visible'
});
所有带有 data-fancybox 的可见链接都将合并到一个图库中。
我需要根据data-fancybox的值创建不同的gallery,比如data-fancybox="gallery1"、data-fancybox="gallery2"等,同时fancybox还要继续动态监听添加内容。
你能帮帮我吗?
这实际上是一个有效的问题,因为 v3 的早期版本像您描述的那样工作 - 项目按 data-fancybox
属性分组。但是,在实践中,这引起了一些混乱,因为 data-fancybox
属性默认添加了点击事件。
但是,不要害怕创建自己的触发器函数,它很容易。例如,您可以选择使用 data-group
属性进行分组:
$(document).on('click', '[data-group]', function() {
var $this = $(this);
var group = $('[data-group="' + $this.data('group') + '"]');
$.fancybox.open(group, {
// Put your options here, for example:
thumbs : {
autoStart : true
}
}, group.index($this));
return false;
});
在 fancybox v.3 的文档中说 "Sometimes you might need to bind fancybox to dynamically added elements. Use selector..."。一切正常,但我需要禁用画廊的自动分组并自定义多个画廊选择器。
默认行为:
$().fancybox({
selector : '[data-fancybox]:visible'
});
所有带有 data-fancybox 的可见链接都将合并到一个图库中。 我需要根据data-fancybox的值创建不同的gallery,比如data-fancybox="gallery1"、data-fancybox="gallery2"等,同时fancybox还要继续动态监听添加内容。
你能帮帮我吗?
这实际上是一个有效的问题,因为 v3 的早期版本像您描述的那样工作 - 项目按 data-fancybox
属性分组。但是,在实践中,这引起了一些混乱,因为 data-fancybox
属性默认添加了点击事件。
但是,不要害怕创建自己的触发器函数,它很容易。例如,您可以选择使用 data-group
属性进行分组:
$(document).on('click', '[data-group]', function() {
var $this = $(this);
var group = $('[data-group="' + $this.data('group') + '"]');
$.fancybox.open(group, {
// Put your options here, for example:
thumbs : {
autoStart : true
}
}, group.index($this));
return false;
});