我有一个页面,当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功能。 奇怪,我知道。
帮助。
答案 0 :(得分:0)
我解决了这个问题: 1-将链接转换为类而不是id 2-将fancybox代码也放入.js.erb文件中。
显然是
$('a.couponLink').fancybox({
'opacity' : true,
'overlayShow' : true,
'transitionIn' : 'elastic',
'transitionOut' : 'none'
});
第一次运行,它会触发一个可用于打开精美框的链接列表。在页面上的任何形式的ajax请求时,这个链接列表以某种方式被否定。因此,在每个ajax请求之后再次将上述代码添加到.js.erb文件中,重新注册链接。