javascript - 如何根据边框元素在winjs ListView 中删除焦点

标签 javascript listview winjs windows

我的应用程序具有响应能力。假设如果我的 ListView 中有 140 个项目,最初我在全屏显示中每行显示 6 个项目,如果调整应用程序大小,则每行的项目数可能会根据调整后的显示区域大小而减少。假设每行 3 个项目。

现在我想要的是,当用户焦点位于顶行并且用户仍然按 KEY_UP(38) 时,我想删除焦点并将其设置在其上方的菜单上,如果用户位于一行中最左边的元素并仍然按KEY_LEFT(37),我想删除焦点并将其设置为左侧的菜单

现在,我可以在 ListView 上添加 keydown 事件监听器并检测 KEY_UP(38) 并仅当每行的项目数稳定时删除焦点。但如果用户调整应用程序的大小,则该功能将不起作用。现在,如何解决这个问题。

我想我已经正确解释了我的问题。如果没有,请告诉我。

最佳答案

您可以尝试使用XYFocus 。连接 XYFocus 以监听箭头键,如 this sample 中所示。 :

WinJS.UI.XYFocus.keyCodeMap.up.push(WinJS.Utilities.Key.upArrow);
WinJS.UI.XYFocus.keyCodeMap.down.push(WinJS.Utilities.Key.downArrow);
WinJS.UI.XYFocus.keyCodeMap.left.push(WinJS.Utilities.Key.leftArrow);
WinJS.UI.XYFocus.keyCodeMap.right.push(WinJS.Utilities.Key.rightArrow);

我不确定 ListView 项目是否可聚焦。如果没有,请将 tabindex 添加到项目模板中以执行此操作。

让我知道这是否有效!

关于javascript - 如何根据边框元素在winjs ListView 中删除焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31097048/

相关文章:

javascript - 使用没有路径的 require() 函数

javascript - 添加覆盖后如何禁用 div 元素?

android,如何从 XML 添加 ListView 项目?

javascript - 从 WinJS 中的 AppFolder 打开 Iframe 中的本地 HTML 文件

javascript - 在 Windows 10 通用 Javascript 应用程序中写入文件有时会失败

javascript - 是否有js插件将矩阵参数转换为css3转换属性?

javascript - AngularJS 应用程序是否被视为窗口?

Android水平动态 ListView

javascript - 如何检测winjs ListView 滚动开始?

javascript - Div 到位图图像? NodeJS/WinJS/任何东西?