【问题标题】:safecracker matrix-menu doesn't appear in overlaysafecracker 矩阵菜单不会出现在叠加层中
【发布时间】:2013-02-14 01:18:08
【问题描述】:

我有一个网站,公众不可见,我在多个位置使用安全破解器和矩阵字段。在正常加载的页面上,一切都很好。但是当矩阵字段出现在叠加层中(使用颜色框)时,不会创建矩阵菜单 div。

使用 FireBug 单步执行代码,问题似乎在于:

var $body = $(document.body);

没有正确设置 $body (也许这是覆盖加载的竞争条件?)。所以当它到达matrix.js中的这段代码时:

obj.menu.$ul = $('<ul id="matrix-menu" />').appendTo($body).css({
    opacity: 0,
    display: 'none'
});

$body 无法解析,因此菜单无法附加到任何位置。我想我已经修复了它,但想检查一下我是否应该担心我会破坏其他任何东西。如果我将上面的代码更改为:

obj.menu.$ul = $('<ul id="matrix-menu" />').appendTo($(document.body)).css({
    opacity: 0,
    display: 'none'
});

一切似乎都很好。有没有更好的方法来解决这个问题?

【问题讨论】:

  • 我也遇到了这个问题。我们有一个 EE 2.3.1 站点并将 Matrix 升级到 2.5.3 并且菜单没有显示,但是当我在上面进行代码更改时它工作正常。
  • 你需要用“matrix”标记它,以便 P&T 人员看到它。
  • 实际上这应该已经发布在expressionengine.stackexchange.com——我们没有主动监控 Stack Overflow 上的任何标签。

标签: expressionengine


【解决方案1】:

如果 Matrix 字段在第一次初始化时没有高度,它会暂停其大部分初始化内容,假设它默认隐藏或位于辅助发布选项卡上。这减少了初始页面加载时间,还解决了一些需要知道其单元格内 DOM 元素尺寸的单元格类型(文本、资产,可能还有其他)的问题。

Matrix 将在展开或单击其选项卡时自动恢复其初始化,但如果您在发布页面之外使用 Matrix隐藏它,您需要触发初始化 - 恢复自己:

for (var i = 0; i < Matrix.instances; i++)
{
    Matrix.instances[i].initRowsIfVisible();
}

【讨论】:

  • 我实际上在正常的发布页面中遇到了这个问题。我没有意识到 OP 在 Safecracker 中得到它。
  • 刚刚意识到您说这是一个 EE 2.3 站点。 Matrix 需要 EE 2.4 及更高版本(请参阅docs.pixelandtonic.com/matrix/installation.html)。可以试试升级EE吗?如果这没有帮助,请发送电子邮件至 support@pi​​xelandtonic.com 将所有相关信息发送给我们,我们会进行调查。
猜你喜欢
  • 2013-04-21
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
相关资源
最近更新 更多