Foundation.MediaQuery.current 循环(第一次迭代总是什么都不显示,下一次总是正确的)
Foundation.MediaQuery.current in a loop (first iteration always shows nothing, next are always correct)
我使用Foundation.MediaQuery.current
来确定当前断点。每次我第一次调用 console.log(Foundation.MediaQuery.current)
(n=0) 时,我什么也得不到。
对于所有下一次调用 (n>0) 我总是得到正确的断点,比方说 large
.
这是我的功能:
_calculateLimit = function () {
var postsInjectedCount = container.find('.post-appended').length;
console.log(Foundation.MediaQuery.current);
if (Foundation.MediaQuery.current === 'large') { // gives nothing on first iteration :/
return postsInjectedCount % 3 !== 0 ? 2 : 3;
}
return postsInjectedCount % 2 !== 0 ? 1 : 2;
},
下图显示了我的 Chrome 开发工具的屏幕。
有用信息1:第一次调用和下次调用在业务逻辑上没有区别。
有用信息 2:我使用 Foundation For Sites ~6.2.1
我做错了什么?
如果将 console.log 放在函数的末尾,您会看得更清楚。所以试一试,直接说结果。
会说明哪里出错了
看起来你是运行 Foundation 初始化之前的代码。将初始化代码放在 JavaScript 文件的顶部是一个好习惯。
我使用Foundation.MediaQuery.current
来确定当前断点。每次我第一次调用 console.log(Foundation.MediaQuery.current)
(n=0) 时,我什么也得不到。
对于所有下一次调用 (n>0) 我总是得到正确的断点,比方说 large
.
这是我的功能:
_calculateLimit = function () {
var postsInjectedCount = container.find('.post-appended').length;
console.log(Foundation.MediaQuery.current);
if (Foundation.MediaQuery.current === 'large') { // gives nothing on first iteration :/
return postsInjectedCount % 3 !== 0 ? 2 : 3;
}
return postsInjectedCount % 2 !== 0 ? 1 : 2;
},
下图显示了我的 Chrome 开发工具的屏幕。
有用信息1:第一次调用和下次调用在业务逻辑上没有区别。
有用信息 2:我使用 Foundation For Sites ~6.2.1
我做错了什么?
如果将 console.log 放在函数的末尾,您会看得更清楚。所以试一试,直接说结果。
会说明哪里出错了
看起来你是运行 Foundation 初始化之前的代码。将初始化代码放在 JavaScript 文件的顶部是一个好习惯。