后续的ajax请求后,Fancybox模式开始失败

时间:2012-10-02 13:41:06

标签: jquery ruby-on-rails fancybox

我有一个页面,当i用户点击图像链接列表时,可以显示带有图像的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创建页面动态之前,所有工作都已完成。 但是,我添加了一些ajax过滤器来处理index.js.erb文件,该文件过滤列表中的对象列表。在关闭ajax请求后,上面的链接无法加载模态,只是将我带到图像的页面,而不是将其加载到模态中?

不确定是什么导致此问题或如何诊断问题?任何指针,看看为什么fancybox没有开火?

我看到的一种可能性是在我的index.js.erb文件中,我打电话

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

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

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

重新加载页面可恢复图像链接上的fancybox功能。 奇怪,我知道。

帮助。

1 个答案:

答案 0 :(得分:0)

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

显然是

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

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