2014-02-15 274 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'});