Javascript WinJS弹出按钮持续关闭-无法单击控件
我正在编写一个Win Universal应用程序(JS),并实现了一个弹出按钮。可通过工具栏中的按钮访问弹出按钮。弹出按钮代码-Javascript WinJS弹出按钮持续关闭-无法单击控件,javascript,html,microsoft-metro,win-universal-app,winjs,Javascript,Html,Microsoft Metro,Win Universal App,Winjs,我正在编写一个Win Universal应用程序(JS),并实现了一个弹出按钮。可通过工具栏中的按钮访问弹出按钮。弹出按钮代码- <button data-win-control="WinJS.UI.Command" data-win-options="{ id:'cmdChangeCategory', label:'Change Category', section:'selection', type:'flyout',
<button data-win-control="WinJS.UI.Command" data-win-options="{
id:'cmdChangeCategory',
label:'Change Category',
section:'selection',
type:'flyout',
icon:'video',
tooltip:'Change Category',
flyout:'changeCatFlyout'}"></button>
弹出式分区-
<div id="changeCatFlyout" data-win-control="WinJS.UI.Flyout">
<label for="ddlChangeCategory" style="display:block;clear:both;margin-top:10px">Select Category</label>
<select id="ddlCategoryChange"></select>
<button id="btnChangeCategory" title="Change" style="display:block;clear:both;margin-top:10px">Change</button>
</div>
选择类别
改变
单击按钮时弹出按钮会显示,看起来很好,问题是弹出按钮内的控件无法交互(下拉列表通过JS填充)。每当我尝试单击下拉列表或按钮时,弹出按钮就会关闭。我已经尝试将弹出式div作为身体的直接子对象,因为我在其他地方看到这是一个可能的解决方案
有什么想法吗
我应该加上在WinJS操场上尝试这一点——让我感到沮丧 弹出按钮应该是document.body的直接子项。确保弹出按钮没有嵌套在其他div中。我不知道这是否与您的问题相同,但我想我会发表评论,以防其他人也有与我相同的问题 基本上,我制作的小提琴与我的代码相似: 请注意css:
#wholeContainer {
position: fixed;
}
因为这整个容器是所有东西的容器位置:固定代码>干扰了弹出按钮中元素的单击事件。我将其更改为“绝对”
,它再次完美地工作:)
更新小提琴:
希望对某人有所帮助:)请参阅
基本上,问题是您需要在父级固定DIV之外定义data win control=“WinJS.UI.Menu”部分。似乎您无法定位:固定一个DIV,然后定位:固定另一个DIV,并期望弹出按钮在所有浏览器上都能工作(在IE..ha中工作)。WinJS.UI.Menu也在尝试定位:已修复
所以
<div id="aMenuBar" style="position:fixed">
<button id="settingsButton" class="win-button">Settings</button>
</div>
<!-- this part cannot be in the fixed div above -->
<div id="settingsFlyout" data-win-control="WinJS.UI.Menu">
<button data-win-control="WinJS.UI.MenuCommand" data-win-options="{id:alwaysSaveMenuItem',label:'Always Save Drafts',type:'toggle',selected:'true'}"></button>
</div>
设置
按钮所在的工具栏是否也是弹出型按钮?只有一个弹出式集合,因此,如果您在响应另一个即将被轻置的弹出式集合时显示changeCatFlyout,则新的弹出式集合将与旧的弹出式集合一起被解除。