如何隐藏“手风琴”小部件细节?

时间:2019-05-03 14:02:33

标签: javascript google-app-maker

我在使用扩展/不扩展时遇到麻烦。我遵循了供应商评级模板中的指示,但仍然没有运气。

我所做的:

  1. onDataLoad事件中使用此脚本创建名为 AccordionServeur 的纸质手风琴小部件(不是卡片):
var rows = widget.children._values;
    for (var i = 0; i < rows.length; i++) {
      if (rows[i].name.indexOf('AccordionServeurDetail') === -1) {
        rows[i].styles = ['collapsed'];
      }
    }
  1. 在AccordionServeurRow中添加一些文本框以编辑值(即,使用数据链接)

  2. 使用以下代码创建客户端脚本:

function expandAccordionRow(accordionRow) {
  var rows = accordionRow.parent.children._values;
  var i = 0;
  for (i = 0; i < rows.length; i++) {
    if (rows[i].name.indexOf('AccordionServeurDetail') > -1) {
      rows[i].styles = [];
    } else {
      rows[i].styles = ['collapsed'];
    }
  }
  accordionRow.styles = [];
}
function collapseAccordionRow(accordionRow) {
  var rows = accordionRow.parent.children._values;
  var i = 0;
  accordionRow.styles = ['collapsed'];
  for (i = 0; i < rows.length; i++) {
    if (rows[i].name.indexOf('AccordionServeurDetail') > -1) {
      rows[i].styles = ['hidden'];
    }
  }
}
function toggleAccordionRow(accordionRow) {
  if (accordionRow.styles.length === 0) {
     collapseAccordionRow(accordionRow);
  } else {
        expandAccordionRow(accordionRow);
  }
}
  1. 在AccordionServeurRow上,在onAttach事件中,我运行以下脚本:
widget.styles = ['collapsed'];
widget.getElement().removeAttribute('aria-expanded');
  1. 在AccordionServeurRow上,在onClick事件中,我运行以下脚本:
toggleAccordionRow(widget);
  1. 在AccordionServeurDetail上,在dataLoad事件中,我运行以下脚本:
widget.styles=['hidden'];

但是当我打开小部件所在的页面时,它仍会扩展细节。 另外,如果我单击AccordionRow,则细节保持扩展事件。 我是否错过了脚本中的某些内容,还是因为小部件中的参数?

编辑: 我找到了解决方案。您必须创建样式“ collapsed”并在上面的脚本中调用它们:

.app-AccordionRow.collapsed {
  margin: 0 !important;
}

.app-AccordionDetail.hidden {
  display: none !important;
}

1 个答案:

答案 0 :(得分:0)

您必须在全局样式部分的样式编辑器中创建样式“ collapsed”和“ Hidden”,才能在上面的脚本中调用它们:

.app-AccordionRow.collapsed {
  margin: 0 !important;
}

.app-AccordionDetail.hidden {
  display: none !important;
}