从 poup 获取 fancybox 调用 ajax

Get fancybox call from poup ajax

我认为打开 fancybox 的 popupajax

这是它的代码

 <div class="name"><%= popup_ajax hotel.name, hotel_info_path(hotel) %></div>

编译时看起来像这样

<div class="name"><a class=" fancybox" data-type="ajax" data-src="/hotel_info/72721" data-options="{&quot;touch&quot;:false,&quot;baseClass&quot;:null}" href="javascript:;">Ibis London Thurrock M25</a></div>

我需要捕捉事件,当这个 fancybox 通过 JS 打开到 post 映射到 div 时,fancybox 内容

例如我试着这样做

 $(".name").click(function(){
    $("a.fancybox").fancybox({
      beforeShow: function(){
        alert("Here");
      }
    });
  })

但我没有发出警报。

我该怎么做?

您的代码运行良好(稍作调整),请参阅此演示 - https://codepen.io/anon/pen/MXmyZq?editors=1010

了解 $(selector).fancybox() 的作用非常重要 - 通过执行 .fancybox() 方法,您将启动 fancybox 的点击事件(到选定元素)(参见文档 - https://fancyapps.com/fancybox/3/docs/#usage

基本上 - 您已经创建了将另一个点击事件处理程序附加到您的元素的点击事件。只需删除不必要的点击事件即可。

但是,如果您真的想从点击处理程序中启动 fancybox,那么您必须为此使用 $.fancybox.open() 方法(参见 https://fancyapps.com/fancybox/3/docs/#api 示例)。