无法读取速记javascript /查询

时间:2015-10-06 22:23:21

标签: javascript jquery twitter-bootstrap syntax shorthand

我花了很多时间试图了解bootstrap的导航栏,主要是花了4-5天阅读stackoverflow帖子

&安培;最后我想我找到了answer帮助!!!

麻烦的是,我无法理解随附的javascript / jquery代码。我猜它是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行中的怪异语法让我神秘化了

1 个答案:

答案 0 :(得分:2)

  var actives = $(this).find('.collapse.in'),
    hasData;

这会创建两个变量。一个从当前范围中选择与选择器.collapse.in匹配的元素,以及一个空变量。

if (actives && actives.length) 

如果存在活动并且包含的​​元素数多于零,请执行以下操作...

hasData = actives.data('collapse')

检索存储在密钥collapse下的任意数据。有关详细信息,请参阅https://api.jquery.com/jquery.data/

if (hasData && hasData.transitioning) return

如果hasData存在并且hasData.transitioning是真实的,请停止执行功能。

actives.collapse('hide')

致电collapse上的actives功能。这不是本机jQuery函数,因此您必须查找它来自的任何插件以理解传入的参数。

hasData || actives.data('collapse', null)

如果hasData是真实的,请跳过此行。否则,将actives变量中的任意数据设置为null。