Javascript 父级的聚合物纸折叠项目更改类别

Javascript 父级的聚合物纸折叠项目更改类别,javascript,polymer,Javascript,Polymer,我有一个聚合物在一个在另一个内。当打开时,我想更改添加另一个类到。但是聚合物告诉我这个函数是未定义的。现在我有: HTML: 标题 脚本: <script> Polymer({ is: 'text-page', _expandBox: function() { var exp = this.getElementsByClassName("header")[0]; var expPar = this.getEleme

我有一个聚合物
在一个
在另一个
内。当
打开时,我想更改添加另一个类到
。但是聚合物告诉我这个函数是未定义的。现在我有:

HTML:


标题
脚本:

<script>
    Polymer({
      is: 'text-page',

      _expandBox: function() {
        var exp = this.getElementsByClassName("header")[0];
        var expPar = this.getElementsByClassName("box")[0].parentNode;
        if (exp.hasAttribute(opened)) {
          expPar.className += " paropen";
        }
      }
    });
</script>
<script>
    Polymer({
      is: 'text-page',

      _expandBox: function(opened) {
        var exp = this.getElementsByClassName("container")[0];
        if (opened) {
          exp.className += " paropen";
        }
      }
    });
</script>
<script>
    Polymer({
      is: 'text-page',

      _expandBox: function() {
        var exp = this.getElementsByClassName("container")[0];
        if (this.$.collapseItem.opened) {
          exp.className += " paropen";
        }
      }

      _functionWithParamsThatChangesThis(param1, param2, ...) {
        if (param1, param2, ...) return true;
        return false;
      }
    });
</script>

聚合物({
是:'文本页',
_expandBox:功能(已打开){
var exp=this.getElementsByClassName(“容器”)[0];
如果(打开){
exp.className+=“paropen”;
}
}
});
这告诉我:未定义侦听器方法
\u expandBox(已打开)

谢谢你帮我学习。我不熟悉Polymer。

接下来,你必须写上“on-”,然后是手势事件类型。您还必须删除事件处理程序中的括号。就你而言:

<div class="box" on-click="_expandBox">
您的代码可以是:

HTML:


True,实际上点击
会更好。但是代码中仍然有一个错误,所以它不能工作。你能告诉我完整的错误吗?您是否删除了处理程序上的括号?错误是
侦听器方法\u expandBox(已打开)未定义
,但由于其他原因,我还做了一些额外的更改,因此我更新了上述问题。太好了!非常感谢你!我对它投了更高的票,但还没有足够的声誉让它出现。上面说他们被记录下来了。我只需要再多一个人来投票表决我的一个问题。:-)
<div class="box" on-click="_expandBox">
_expandBox: function(event) {
    console.log(event.detail);
}
<div class="container> 
    <h1>Header</h1>
    <collapse-item id="collapseItem" on-tap="_expandBox" opened="[[_functionWithParamsThatChangesThis(param1, param2, ...)]]"></collapse-item>
</div>
<script>
    Polymer({
      is: 'text-page',

      _expandBox: function() {
        var exp = this.getElementsByClassName("container")[0];
        if (this.$.collapseItem.opened) {
          exp.className += " paropen";
        }
      }

      _functionWithParamsThatChangesThis(param1, param2, ...) {
        if (param1, param2, ...) return true;
        return false;
      }
    });
</script>