2014-10-28 228 views
1

所以我用這個軌寶石:https://github.com/kyparn/fancybox2-rails的fancybox打開新窗口

  • 在查看

的fancybox完美的作品在本地,但在分期和生產中使用的前端BackboneJS和實例的fancybox,圖像在新窗口中打開。我檢查了鉻控制檯,並確保fancybox存在,它是。

不完全確定如何解決這個問題/去調試這個。

這是我怎麼有圖像設置:

<a class="fancybox-image" data-fancybox="image" href="image_url"> 
    <img src="image_url" data-js="activate-img-modal"> 
    </a> 

我實例化的fancybox設置在骨幹查看每個圖像是

setupFancyBox: function() { 
    var options = { 
     helpers: { 
     overlay: { 
      locked: false 
     } 
     } 
     }; 
     this.$("[data-fancybox='image']").fancybox(options); 
    } 
  • 調用此功能在視圖的渲染方法。
+0

最有可能的另一個JS錯誤(吊裝,jQuery的版本衝突等)是防止從的fancybox工作......但沒有任何代碼或的jsfiddle只是一個猜測 – JFK 2014-10-28 18:40:48

+0

控制檯不會引起JS錯誤。 – Jayem 2014-10-28 19:27:50

+0

我對BackboneJS並不是很熟悉,但最後一行中的「this」是什麼意思?也許它應該沒有這個關鍵字,只需$(「[data-fancybox ='image']」)。fancybox(options); – dpa 2014-10-28 20:56:30

回答

2

所以本地沒有關於我的圖片擴展名(.JPG/.PNG),像這樣:

<a class="fancybox-image" data-fancybox="image" href="path/to/image1.png"> 
    <img src="path/to/image1.png" data-js="activate-img-modal"> 
</a> 

但在生產/生活沒有附加圖片:

<a class="fancybox-image" data-fancybox="image" href="path/to/image1."> 
    <img src="path/to/image1." data-js="activate-img-modal"> 
</a> 

缺少擴展,造成的fancybox不激活我。

的修復程序會從這裏取(Fancybox urls without .jpg opens not in box):

$(".fancybox").fancybox({ 
    type: 'image' 
    }); 
0

檢查javascript控制檯,如果出現一些javascript錯誤,它可以阻止進一步的javascript代碼執行。 下一步嘗試在控制檯初始化的fancybox,只需運行該代碼(當然可以用你自己的選擇)

$("a.fancybox").fancybox(); 
+0

我試過了,它能夠選擇包裝花哨箱圖像的'a'標籤。和fancybox是存在的。 – Jayem 2014-10-28 19:05:49

+0

你怎麼把你的fancybox初始化代碼放在哪裏?你應該把它放在文檔準備好的事件上。 – dpa 2014-10-28 19:14:07

+0

我剛更新了這個問題 – Jayem 2014-10-28 19:19:51