1

我正在使用自定义模板为标题区域中的表单添加输入字段:

..fancybox({
  caption: function (instance, item) {
    return "FORM CONTAINING AN INPUT FIELD";
  }
}

这些字段显示得很好,但我实际上无法单击任何表单元素。Fancybox 只是窃取与图像交互的输入。有没有办法让 div.fancybox-caption-wrap 中的东西能够处理自己的输入并将图像保持在其上方?基本上,只是为了让它像允许交互的 div.fancybox-controls 一样工作(并充当图像的顶部)。

我尝试在文档页面上搜索选项,但似乎没有任何适合或工作。“触摸”事件似乎可能会窃取事件,但开/关没有任何区别。禁用“closeClickOutside”也无济于事。与 Fancybox2 交互的表单元素无需任何额外步骤。我还能尝试什么?

4

1 回答 1

1

默认情况下,标题区域中的所有指针事件都被禁用。

要在 fancybox 标题框中启用输入文本或任何其他 html 字段,请添加此 css 规则。

.fancybox-caption-wrap {
    pointer-events: all;
}

我正在使用 fancybox-3.1.20 和 .fancybox-custom-layout

这是我的工作代码。

            caption: function (instance, item) {
                var caption = $(this).data('caption') || '';

                if (item.type === 'image') {
                    caption = '(<span data-fancybox-index></span>/<span data-fancybox-count></span>)' + '<br />' + (caption.length ? caption + '<br />' : '') +
                    '<input type="text" value="comment">' +
                    $('#comments_panel').html()
                    ;
                }
                return caption;
            }

在标题区域内查看我的 fancybox 图像评论面板的屏幕截图。

在此处输入图像描述

于 2017-09-01T05:17:45.960 回答