聚合物多铁-塌陷
Polymer Multiple Iron-Collapse
聚合物文档不清楚如何使用 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>
<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();
},
Polymer 的 automatic node finding 通过 ID 映射节点,但是您有两个具有相同 ID 的节点,因此只有最后一个遇到的节点会映射到该 ID(即 this.$.collapse
指的是第二个 iron-collapse
在你的例子中)。此外,由于您的 click
-handler 指的是相同的 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>
聚合物文档不清楚如何使用 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>
<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();
},
Polymer 的 automatic node finding 通过 ID 映射节点,但是您有两个具有相同 ID 的节点,因此只有最后一个遇到的节点会映射到该 ID(即 this.$.collapse
指的是第二个 iron-collapse
在你的例子中)。此外,由于您的 click
-handler 指的是相同的 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>