我花了很多时间试图了解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行中的怪异语法让我神秘化了
答案 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。