如何在Dojo StackContainer中禁用热键

时间:2008-12-19 12:28:07

标签: javascript dojo

我正在使用Dojo 1.2在客户的网页上实现某些功能。我使用的一个小部件是dijit.layout.TabContainer,它继承了StackContainer。 StackContainer订阅键盘事件并创建一些热键,如左箭头向左移动一个选项卡,依此类推。

现在问题:我想在TabContainer中禁用此热键功能。是否有我可以设置的配置选项(在API中找不到任何配置)来实现这一点,或者必须破解Dojo代码或者创建我自己的StackContainer和TabContainer版本以摆脱热键?我当然希望不要乱用Dojo代码。

最好的问候/ Fredrik

2 个答案:

答案 0 :(得分:2)

简单地用空体覆盖_onKeyPress:

<div dojoType='dijit.layout.TabContainer'>
<script type='dojo/method' event='_onKeyPress'></script>
...
<div>

像魅力一样。

答案 1 :(得分:0)

我只是在这里编码袖口,我根本没有测试它。我正在做这个wikified,所以如果有任何问题请发布正确的来源。

在名为com / stackoverflow / KeyPresslessTabContainer.js的文件中使用以下javascript:

dojo.provide(“com.stackoverflow.KeyPresslessTabContainer”);

dojo.require(“dijit.layout.TabContainer”);

dojo.declare(“com.stackoverflow.KeyPresslessTabContainer”,dijit.layout.TabContainer,{   _controllerWidget:“com.stackoverflow.KeyPresslessTabController” });

dojo.declare(“com.stackoverflow.KeyPresslessTabController”,dijit.layout.TabController,{   / *    *这是重要的部分。原始代码是:    * templateString:“”    *在下面的模板中,我们删除了onkeypress监听器,    *因此应忽略按键。    * /   templateString:“” });