从 Fancybox 获取当前 ID class

Get the current ID from Fancybox class

我正在尝试调用 Fancybox 3 层并使用 Class 从元素接收当前 ID。但它仍然是 returns 未定义的变量。

$(".cerrar_actividad").fancybox({
  afterLoad: function () {
    alert($(this.element).attr("id"))
  }
}); 

这里是 JSfiddle 示例 https://jsfiddle.net/3bfcrstc/4/

要在 afterLoad 事件处理程序中获取被单击元素的 id,您可以从 $lastFocus 对象中获取 context,如 [=16] 中返回的=] 参数,像这样:

$(".cerrar_actividad").fancybox({
  afterLoad: function(instance, current) {
    alert($(instance.$lastFocus.context).prop("id"))
  }
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.25/jquery.fancybox.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.25/jquery.fancybox.min.js"></script>

<a id="image1" rel="gallery" class="cerrar_actividad" href="https://www.youtube.com/watch?v=6s-a7Xz_Qqc"><img src="http://fancyapps.com/fancybox/demo/1_s.jpg" alt="" /></a>
<a id="image2" rel="gallery" class="cerrar_actividad" href="https://www.youtube.com/watch?v=6s-a7Xz_Qqc"><img src="http://fancyapps.com/fancybox/demo/1_s.jpg" alt="" /></a>

原始元素存储在 opts.$orig 中(用于自定义),这就是您获取 ID 的方式:

afterLoad: function( instance, current ) {
    alert( current.opts.$orig.attr("id") );
}

https://jsfiddle.net/3bfcrstc/5/