聚合物在点击时更改纸质图标按钮中的图标
Polymer change the icon in paper-icon-button onclick
使用聚合物 1.0
我正在尝试在单击时更改纸质图标按钮的(聚合物)图标。无法让它工作。
到目前为止,我已经这样做了。
<paper-icon-button class="expandComments"
icon="{{isCollapsed? 'expand-more' : 'expand-less'}}" on-click="expanding">
</paper-icon-button>
"扩展更多"和"扩展更少"是我想使用的图标。
创建的功能:
created: function() {
this.isCollapsed = true;
},
扩展功能:
expanding: function() {
var content = this.$.review_item_content;
if(content.classList.contains('review-item-content')) {
this.isCollapsed = false;
content.classList.remove('review-item-content');
}else{
this.isCollapsed = true;
content.classList.add('review-item-content');
}
},
它到达扩展函数并更改 isCollapsed 的值并删除样式类。
现在我也尝试了这个:
<paper-icon-button class="expandComments" icon="{{expandIcon}}" on-click="expanding"></paper-icon-button>
icon: {
expandIcon: 'expand-more',
},
created: function() {
this.isCollapsed = true;
},
expanding: function() {
var content = this.$.review_item_content;
if(content.classList.contains('review-item-content')) {
this.icon.expandIcon = 'expand-less';
this.isCollapsed = false;
content.classList.remove('review-item-content');
}else{
this.icon.expandIcon = 'expand-more';
this.isCollapsed = true;
content.classList.add('review-item-content');
}
},
像 x ? y : z
这样的表达式在 Polymer 1.0 中(尚)不受支持
需要改用计算绑定,如下所示:
icon="{{_icon(isCollapsed)}}"
Polymer({
properties: {
isCollapsed: {
type: Boolean,
value: true
}
},
_icon: function (isCollapsed) {
return isCollapsed ? 'icon1' : 'icon2'
}
});
更改 isCollapsed
的值将自动重新评估函数并相应地设置图标值。
编辑:由于只要未定义isCollapsed
就不会调用_icon
,因此您必须使用默认值对其进行初始化(请参阅上面编辑的代码中的properties
对象)。
在Scarygami发布解决方案后,仍然存在问题。 isCollapsed 仍然未定义,即使它是在创建中设置的,因此图标图像在启动时没有加载。
解决方案:聚合物全局变量
<paper-icon-button class="expandComments" icon="{{_icon(isCollapsed)}}" on-click="expanding"></paper-icon-button>
<script>
(function() {
var isCollapsed = true;
Polymer({
is: 'edit-review',
properties: {
reviews: Object
},
_icon: function (isCollapsed) {
return isCollapsed ? 'expand-more' : 'expand-less';
},
ready: function() {
this.isCollapsed = isCollapsed;
},
expanding: function() {
var content = this.$.review_item_content;
if(content.classList.contains('review-item-content')) {
this.isCollapsed = false;
}else{
this.isCollapsed = true;
}
},
});
})();
</script>
相关文章:
- 如何在已经有图标的滚动到顶部按钮中添加文本
- 如何将自定义图标添加到 JqGrid 顶级工具栏按钮
- 如何让登录按钮在用户登录时更改为图标
- 更改 JWPlayer 显示图标(播放按钮)的不透明度
- 添加/单击c#asp.netmvc5后禁用和更改按钮图标
- DataTables:在按钮中的文本旁边添加图标
- 有没有办法查看Chrome扩展程序的图标/按钮是否已隐藏
- 如何在单击按钮时为整个星形图标上色
- 页面更改时动态更改标题按钮图标,jQuery mobile 1.4.5
- 使用chrome扩展(HTML、CSS、JavaScript)向输入字段添加可点击的图标/按钮
- 需要将下拉列表附加到具有类型“”的图标;按钮”;
- KendoUI 使用图标而不是自定义命令的按钮
- 更新引导程序中的按钮图标
- 使用 Primefaces 5.1 如何在运行时仅使用 javascript 更改按钮图标样式.(没有 AJAX 调用)
- 在选项卡材质设计精简版中添加图标按钮
- 需要弹跳一个图标/按钮没有jQuery UI
- 聚合物纸图标按钮不开火点击
- .click()和.trigger("click")都不能用于移动jquery图标按钮.我怎样才能解
- 单击事件未在聚合物纸图标按钮中触发
- 聚合物在点击时更改纸质图标按钮中的图标