2015-03-08 99 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选项才能获得所需的结果。