2014-02-15 213 views
0

我已经安装了FancyBox gem并按照说明详细说明。 Fancy Box2。我想要做的事情应该是相当微不足道的,但事实证明这很烦人。jQuery FancyBox Rails 3.2.12 - 正确显示内容

在.js文件中,我有:

jQuery(function() { 
    $(".lightbox").fancybox(); 
}); 

在我的导轨的网页我有:

<%= link_to 'Share Widget-Lightbox', widgetinvitation_path, :class => 'lightbox' %> 

非常容易的吧?我所期待的是,当我点击这个链接时,灯箱会显示这个页面上的内容。然而相反,它将我重定向到页面。?

widgetinvitation_path只包含:

<div class="border-form-div"> 
    <h2> Invite user </h2> 

    <%= simple_form_for @user, :url => invitation_path(:user), :html => {:method => :post} do |f| %> 
     <%= f.email_field :email %> 
     <%= select_tag :role_id, options_from_collection_for_select(Role.offset(3), 'id', 'name') %> 
     <%= f.select :widget_id, options_from_collection_for_select(@widgets, "id", "name") %> 

     <%= f.submit t("devise.invitations.new.submit_button") %> 
    <% end %> 
</div> 

所以父页面上(这里的fancybox存在链接)是当我点击上述表单在呈现的fancybox的链接,我期望。我相信我错过了一些基本的东西。我测试了FancyBox的作品。它的确如此。如果我使用基本的<a>标签。为了提供一个工作示例:

<a class= "lightbox" id="single_1" href="http://farm4.staticflickr.com/3712/9032543579_1217e6566b_b.jpg" title="Singapore from the air (Andrew Tan 2011)"> 
    <img src="http://farm4.staticflickr.com/3712/9032543579_1217e6566b_m.jpg" alt="" /> 
</a> 

上述工作,但..不是我<%= link_to .... %>

link_to

<a href="/widgetinvitation" class="lightbox">Share Widget-Lightbox</a> 
+0

你能发布这类由非功能'link_to'生成的HTML? –

+0

@MattJones看到我的更新 – user532339

回答

0

的fancybox 2生成的HTML似乎需要暗示为是个什么样的行为因为它可以通过Ajax,通过iframe或内联加载内容。该示例工作没有任何暗示,因为代码是专门检测的东西,看起来像图片:

https://github.com/fancyapps/fancyBox/blob/master/source/jquery.fancybox.js#L296

你要么需要通过暗示作为一个额外的类(“fancybox.ajax”或“的fancybox。 IFRAME“),作为链路上的data-fancybox-type属性,或者通过配置一个默认:

$('.lightbox').fancybox({type: 'ajax'});