【问题标题】:Fancybox 3 clicked "THIS" element ID Read problem from v2 to v3Fancybox 3 单击“THIS”元素 ID 从 v2 到 v3 读取问题
【发布时间】:2019-07-15 12:32:00
【问题描述】:

在fancybox V2 中,我可以轻松地通过JS 读取被点击元素的属性ID 以供进一步使用。它不适用于 v3,我想知道是什么问题,它是在 beforeShow 调用的

beforeShow: function() {

         var tagid = this.element.attr('id');
         alert(tagid);

}

Fancybox 向我抛出“未定义”错误,这意味着单击我不知道注册了什么,但使用 v2 就可以了。

所以基本上通过之前有效的属性传递任何附加参数,我无法在 beforeshow 或 beforeload 中读取,或者这是现在在 fancybox 3 中的不同逻辑,所以我不知道......

非常感谢!

【问题讨论】:

    标签: fancybox-3


    【解决方案1】:

    显然,v3 是 v3 而不是 v2 是有原因的,因为它们是……嗯,不同的版本,您必须查看有关如何使用新 API 的文档。因此,请查看https://fancyapps.com/fancybox/3/docs/#events,您会在哪里找到这个 sn-p:

    // Clicked element
    console.info( slide.opts.$orig );
    

    所以,被点击元素的 ID 是:

     slide.opts.$orig.attr('id')
    

    【讨论】:

    • 感谢您的回答,虽然我去的第一个地方是文档,但显然 afterShow 不是这样做的地方。我需要在 Show 之前获取被点击元素的 ID,这样我就可以使用该 ID 在 fancybox 呈现的图片上覆盖一些东西。如果我检查点击后返回的 jquery 对象,它包含了 fancybox 已经完成的所有内容(fn init 等),因此获得我需要的 attr 似乎有点棘手..
    • 其实......它适用于aftershow,可能我太拘泥于v2版本的逻辑。谢谢!
    • 最后一个问题,因为你是开发者,我知道你的时间非常紧张。以前,可以编辑以下模板: "this.tpl.image='
      '," 现在也有办法吗?基本上我想在显示的图像上放置一个 div 。编辑:基础 tpl,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 2012-05-03
    • 1970-01-01
    • 2021-03-28
    • 2019-01-11
    • 1970-01-01
    相关资源
    最近更新 更多