0

我有一个页面,假设当ai用户单击图像链接列表时,它会显示带有图像的fancybox模式。我的页面中有这个正在加载

        $('a#couponLink').fancybox({
          'opacity'       : true,
          'overlayShow'   : false,
          'transitionIn'  : 'elastic',
          'transitionOut' : 'none'
        });  

思考链接:

<a href="images/<%= coupon.couponImageURL %>" id="couponLink" class="view">View Coupon ></a>

现在,在我使用 ajax 使页面动态之前,一切正常。但是,我添加了一些处理 index.js.erb 文件的 ajax 过滤器,该文件过滤列表中的对象列表。触发 ajax 请求后,上面的链接无法加载模式,只是将我带到图像的页面,而不是在模式中加载它?

不确定是什么原因造成的或如何诊断问题?有什么提示可以查看为什么幻想箱没有触发?

我看到的一种可能性是在我的 index.js.erb 文件中,我确实调用了

<% if session[:zip] and !(session[:zip].blank?) %>
$.fancybox.close();
 <% end %>

要关闭假设在新用户查看页面时加载的特定模式,并且一旦我们设置了一些会话参数,就假设它不再显示。这是同一页面上具有不同类的两个不同的幻想模式。但是调用fancybox的关闭会影响图像模式吗?

在 ajax 请求后查看源代码,我仍然看到所有适当的库正在加载?

重新加载页面会恢复图片链接上的幻想框功能。奇怪,我知道。

帮助。

4

1 回答 1

0

我通过以下方式解决了这个问题: 1- 将链接转换为类而不是 id 2- 将 fancybox 代码也放入 .js.erb 文件中。

显然当

    $('a.couponLink').fancybox({
    'opacity'       : true,
    'overlayShow'   : true,
    'transitionIn'  : 'elastic',
    'transitionOut' : 'none'
    });

第一次运行时,它会触发一个链接列表,可以用来打开一个花哨的盒子。在页面其他地方的任何形式的 ajax 请求中,这个链接列表都会以某种方式被否定。因此,将上述代码再次添加到要在每个 ajax 请求后运行的 .js.erb 文件中,重新注册链接。

于 2012-10-03T16:06:23.420 回答