2015-03-08 96 views
1

我想知道默認配置對象的以下屬性的用途。根據github上的文檔:featherlight.js tagetAttr和自動啓動功能

默認情況下,Featherlight在文檔就緒時初始化與defaults.selector匹配的所有元素。如果您想防止這種情況,請在DOM準備好之前將$ .featherlight.defaults.autostart設置爲false。

並在「綁定羽毛的部分」:

然後,它會尋找targetAttr(默認爲「數據輕如羽毛」)這個元素,並使用它的價值的發現將是內容單擊元素時將其打開爲燈箱。

給上述兩個,我想:

  1. 停止加載輕如羽毛,並在啓動時初始化本身
  2. 而不是使用數據羽毛的-XXX的屬性,使用的數據我,燈箱-xxx屬性。

所以我做了以下內容:

在我的javascript中,onReady()函數之前,我補充說:

$.featherlight.defaults.autostart=false; 

$.featherlight.defaults.targetAttr='data-my-lightbox'; 

但是,設置自動啓動對虛假似乎沒有任何影響。如果我看到來源,我也沒有看到任何參考。雖然有一個'autoBind'變量。

接下來,我嘗試設置數據-MY-收藏屬性錨標記:

<a href="#" data-my-lightbox="my-image-gallery.html" ...> 

,也試過:

<a href="my-image-gallery.html" data-my-lightbox="iframe" ...> 

,但它似乎像這樣被忽略爲好。直到我做了以下內容:

$('[data-my-lightbox]').featherlight(); 

在這似乎是合乎邏輯的方式,但我的印象是,如果我改變onReady之前默認的屬性,其餘的將水到渠成。然後我發現了autoBind變量(onReady()之前)。

$.featherlight.autoBind='[data-my-lightbox]'; 
$.featherlight.defaults.targetAttr='data-my-lightbox'; 

,且無需對明確$(..)的作品如羽毛的結構。迄今爲止都很好。

但是,似乎iFrame的寬度/高度屬性應該仍然是data-featherlight-xxxxx而不是data-my-lightbox-xxxx ..或許歸因於源以下行:

var match = this.name.match(/^data-featherlight-(.*)/); 

如果我修改成類似:

var matchRegEx = RegExp("^"+targetAttr+"-(.*)"); 
var match = this.name. 

,並更新相關地方的代碼?

感謝您的幫助和幫助。

+0

感謝您指出這些問題。 – 2015-03-08 19:48:06

回答

1

updated README反映了一個事實,即您應該使用autoBind,正如您發現的那樣。

使用最新版本,除了需要autoBindtargetAttr以外,還需要更改namespace選項才能獲得所需的結果。