聚合物文档尚未明确如何使用铁坍塌创建多重切换。是否有一种简单的方法可以让每个项目切换?我看了multiple iron-collapse not working, expands only first,但我无法让它发挥作用。从那时起,聚合物可能发生了变化。下面是我正在使用的代码示例。
<div on-click="toggle"><paper-item><a class="paper-item-link"><strong>List Items</strong></a></paper-item></div>
<iron-collapse id="collapse">
<div>Content</div>
</iron-collapse>
<div on-click="toggle"><paper-item><a class="paper-item-link"><strong>List Items</strong></a></paper-item></div>
<iron-collapse id="collapse">
<div>Content</div>
</iron-collapse>
toggle: function() {
this.$.collapse.toggle();
},
答案 0 :(得分:0)
Polymer的automatic node finding按其ID映射节点,但是您有两个具有相同ID的节点,因此只有遇到的最后一个节点将映射到该ID(即,this.$.collapse
指向第二个{在你的例子中{1}}。此外,由于您的iron-collapse
- 处理程序引用相同的click
,因此iron-collapse
个paper-item
会在点击时切换相同的iron-collapse
。
最快的解决方案是为每个iron-collapse
使用唯一的节点ID,并使用唯一的click
处理程序:
<head>
<base href="https://polygit.org/polymer+v1.9.2/components/">
<script src="webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="paper-item/paper-item.html">
<link rel="import" href="iron-collapse/iron-collapse.html">
</head>
<body>
<x-foo></x-foo>
<dom-module id="x-foo">
<template>
<div on-click="toggle1">
<paper-item>
<a class="paper-item-link"><strong>List Items</strong></a>
</paper-item>
</div>
<iron-collapse id="collapse1">
<div>Content</div>
</iron-collapse>
<div on-click="toggle2">
<paper-item>
<a class="paper-item-link"><strong>List Items</strong></a>
</paper-item>
</div>
<iron-collapse id="collapse2">
<div>Content</div>
</iron-collapse>
</template>
<script>
HTMLImports.whenReady(function() {
Polymer({
is: 'x-foo',
toggle1: function() {
this.$.collapse1.toggle();
},
toggle2: function() {
this.$.collapse2.toggle();
}
});
});
</script>
</dom-module>
</body>