无法阅读 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。