如何禁用聚合物核心菜单中的粘性选择
How to disable sticky selection in polymer core-menu
2014 年 9 月 9 日 Github 回购中提出了这个问题:
Whenever I select a menu item, and the menu disappears, the next time
I open the menu, my previous selection remains selected. This makes it
impossible to reselect the same menu item.
core-menu-button 下的评论中有一个已实施的解决方案(9 月 19 日):
There is now a stickySelection property that defaults to false.
因为它默认为 false,所以我永远不需要设置它。但是粘性行为仍然存在,我不知道在哪里设置 attribute/property。这是菜单:
<core-menu-button>
<core-icon-button icon='more-vert'></core-icon-button>
<core-dropdown class='dropdown'>
<core-menu on-core-select='{{menuSelectHandler}}'>
<template repeat='{{menuItems}}'>
<core-item label='{{}}'></core-item>
</template>
</core-menu>
</core-dropdown>
</core-menu-button>
在菜单选择之间,我想 return 菜单 "nothing selected."
看起来 stickySelection
属性 在重构 core-menu-button
时被删除了。我不确定这是不是故意的,所以我重新打开了原来的错误。
作为同时的解决方法,您可以监听 on-core-overlay-open 事件(当菜单覆盖打开或关闭时触发)并手动清除选择。在标记中,添加事件侦听器并为菜单指定一个 ID:
<core-menu-button on-core-overlay-open="{{menuOpen}}">
<core-icon-button icon='menu'></core-icon-button>
<core-dropdown class='dropdown'>
<core-menu id="menu" on-core-select='{{menuSelectHandler}}'>
menuOpen
方法如下所示:
menuOpen: function(e) {
if (! e.detail.opened) {
this.$.menu.selected = null;
}
}
(或者,您可以监听 core-overlay-close-completed
,它会在覆盖层完成关闭时触发。我担心如果用户快速关闭并重新打开菜单会导致计时问题,但事实并非如此这似乎是核心菜单按钮的问题,可能是因为没有延迟关闭菜单。)
2014 年 9 月 9 日 Github 回购中提出了这个问题:
Whenever I select a menu item, and the menu disappears, the next time
I open the menu, my previous selection remains selected. This makes it
impossible to reselect the same menu item.
core-menu-button 下的评论中有一个已实施的解决方案(9 月 19 日):
There is now a stickySelection property that defaults to false.
因为它默认为 false,所以我永远不需要设置它。但是粘性行为仍然存在,我不知道在哪里设置 attribute/property。这是菜单:
<core-menu-button>
<core-icon-button icon='more-vert'></core-icon-button>
<core-dropdown class='dropdown'>
<core-menu on-core-select='{{menuSelectHandler}}'>
<template repeat='{{menuItems}}'>
<core-item label='{{}}'></core-item>
</template>
</core-menu>
</core-dropdown>
</core-menu-button>
在菜单选择之间,我想 return 菜单 "nothing selected."
看起来 stickySelection
属性 在重构 core-menu-button
时被删除了。我不确定这是不是故意的,所以我重新打开了原来的错误。
作为同时的解决方法,您可以监听 on-core-overlay-open 事件(当菜单覆盖打开或关闭时触发)并手动清除选择。在标记中,添加事件侦听器并为菜单指定一个 ID:
<core-menu-button on-core-overlay-open="{{menuOpen}}">
<core-icon-button icon='menu'></core-icon-button>
<core-dropdown class='dropdown'>
<core-menu id="menu" on-core-select='{{menuSelectHandler}}'>
menuOpen
方法如下所示:
menuOpen: function(e) {
if (! e.detail.opened) {
this.$.menu.selected = null;
}
}
(或者,您可以监听 core-overlay-close-completed
,它会在覆盖层完成关闭时触发。我担心如果用户快速关闭并重新打开菜单会导致计时问题,但事实并非如此这似乎是核心菜单按钮的问题,可能是因为没有延迟关闭菜单。)