【问题标题】:Foundation.MediaQuery.current in a loop (first iteration always shows nothing, next are always correct)Foundation.MediaQuery.current 在循环中(第一次迭代总是什么都不显示,下一次总是正确的)
【发布时间】:2016-06-06 09:14:05
【问题描述】:

我使用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

我做错了什么?

【问题讨论】:

  • 您是在 Foundation 初始化代码之后添加此代码吗?
  • 嗨@ShoaibIqbal,你是对的。在启动 Foundation 之前,我确实调用了父函数。请写下您的评论作为答案,以便我将其标记为已接受。

标签: javascript jquery zurb-foundation zurb-foundation-6


【解决方案1】:

您似乎在 Foundation 初始化之前运行代码。将初始化代码放在 JavaScript 文件的顶部是一个很好的做法。

【讨论】:

  • 感谢 Shoaib。这对我有帮助。我确实在启动 Foundation 之前调用了我的函数。但是我把它留在了页脚中,我只是在$(document).foundation(); 之后移动了我的方法,现在一切正常。非常感谢。
【解决方案2】:

如果把console.log放在函数的最后,你会看得更清楚。所以尝试一下,然后告诉结果。

它会澄清错误在哪里。

【讨论】:

    猜你喜欢
    • 2014-11-25
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2021-06-04
    • 2019-05-16
    • 2016-09-26
    相关资源
    最近更新 更多