Twitter bootstrap 推特引导崩溃。。奇怪的数组初始化?
请解释一下它的作用。(引导折叠) 因此,Twitter bootstrap 推特引导崩溃。。奇怪的数组初始化?,twitter-bootstrap,Twitter Bootstrap,请解释一下它的作用。(引导折叠) 因此,data是Collapse插件的一个实例 config是\u jQueryInterface函数的参数 这意味着如果您传递到该函数togglestring-data[config]将是data['toggle']。而切换是一种折叠插件的方法。然后,如果添加(),则可以运行该方法 切换方法: if (!data) { data = new Collapse(this, _config); $this.data(DATA_KEY, data); }
data
是Collapse插件的一个实例
config
是\u jQueryInterface
函数的参数
这意味着如果您传递到该函数toggle
string-data[config]
将是data['toggle']
。而切换
是一种折叠插件的方法。然后,如果添加()
,则可以运行该方法
切换方法:
if (!data) {
data = new Collapse(this, _config);
$this.data(DATA_KEY, data);
}
总之,
data[config]()
根据config
参数运行Collapse plugin方法(可能是show
、hide
、或Collapse
)。如果您有其他类似问题,您可以始终控制台。将这些事情记录在引导程序的代码中,例如,您可以编写console.log(data)
或console.log(data[config])
,当您单击可折叠元素时,您将看到控制台中有哪些内容:)。还有一件事,data[config]
中的括号并不意味着数据是数组,在本例中,数据是一个对象,您可以使用点或括号访问对象键,因此它可以是data.toggle()
或data['toggle']()
。但您不能编写数据。'toggle'()
,这就是他们使用括号表示法的原因。
Collapse._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var $this = $(this);
var data = $this.data(DATA_KEY);
var _config = $.extend({}, Default, $this.data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
if (!data && _config.toggle && /show|hide/.test(config)) {
_config.toggle = false;
}
if (!data) {
data = new Collapse(this, _config);
$this.data(DATA_KEY, data);
}
if (typeof config === 'string') {
if (data[config] === undefined) {
throw new Error('No method named "' + config + '"');
}
data[config]();
}
});
};
if (!data) {
data = new Collapse(this, _config);
$this.data(DATA_KEY, data);
}
Collapse.prototype.toggle = function toggle() {
if ($(this._element).hasClass(ClassName.SHOW)) {
this.hide();
} else {
this.show();
}
};