无法阅读 shorthand javascript/query
cannot read shorthand javascript/query
我花了很长时间试图理解 bootstrap 的导航栏,主要是花 4-5 天时间阅读 Whosebug 帖子
& 最后我想我找到了一个有帮助的 answer!!!
问题是,我无法理解随附的 javascript/jquery 代码。我猜它是一个 shorthand 版本的 js 之类的,但我无法破译它的意思
基本上,它是出现在 this jsfiddle 页面上的 javascript 代码
$('.navbar').on('show', function () {
var actives = $(this).find('.collapse.in'),
hasData;
if (actives && actives.length) {
hasData = actives.data('collapse')
if (hasData && hasData.transitioning) return
actives.collapse('hide')
hasData || actives.data('collapse', null)
}
});
所以,如果有人能逐行向我解释代码的作用,那就太棒了
第一行我明白了。接下来 6 行中的怪异语法让我感到困惑
var actives = $(this).find('.collapse.in'),
hasData;
这将创建两个变量。一个是从当前作用域中挑选的与选择器匹配的元素 .collapse.in
,一个是空变量。
if (actives && actives.length)
如果 actives 存在且包含的元素多于零,请执行以下操作...
hasData = actives.data('collapse')
检索存储在键 collapse
下的任意数据。有关详细信息,请参阅 https://api.jquery.com/jquery.data/。
if (hasData && hasData.transitioning) return
如果 hasData
存在且 hasData.transitioning
为真,则停止函数执行。
actives.collapse('hide')
在 actives
上调用 collapse
函数。这不是本机 jQuery 函数,因此您必须查找它来自的任何插件才能理解传入的参数。
hasData || actives.data('collapse', null)
如果 hasData
为真,则跳过此行。否则,将 actives
变量中的任意数据设置为 null。
我花了很长时间试图理解 bootstrap 的导航栏,主要是花 4-5 天时间阅读 Whosebug 帖子
& 最后我想我找到了一个有帮助的 answer!!!
问题是,我无法理解随附的 javascript/jquery 代码。我猜它是一个 shorthand 版本的 js 之类的,但我无法破译它的意思
基本上,它是出现在 this jsfiddle 页面上的 javascript 代码
$('.navbar').on('show', function () {
var actives = $(this).find('.collapse.in'),
hasData;
if (actives && actives.length) {
hasData = actives.data('collapse')
if (hasData && hasData.transitioning) return
actives.collapse('hide')
hasData || actives.data('collapse', null)
}
});
所以,如果有人能逐行向我解释代码的作用,那就太棒了
第一行我明白了。接下来 6 行中的怪异语法让我感到困惑
var actives = $(this).find('.collapse.in'),
hasData;
这将创建两个变量。一个是从当前作用域中挑选的与选择器匹配的元素 .collapse.in
,一个是空变量。
if (actives && actives.length)
如果 actives 存在且包含的元素多于零,请执行以下操作...
hasData = actives.data('collapse')
检索存储在键 collapse
下的任意数据。有关详细信息,请参阅 https://api.jquery.com/jquery.data/。
if (hasData && hasData.transitioning) return
如果 hasData
存在且 hasData.transitioning
为真,则停止函数执行。
actives.collapse('hide')
在 actives
上调用 collapse
函数。这不是本机 jQuery 函数,因此您必须查找它来自的任何插件才能理解传入的参数。
hasData || actives.data('collapse', null)
如果 hasData
为真,则跳过此行。否则,将 actives
变量中的任意数据设置为 null。