我正在使用Dojo 1.2在客户的网页上实现某些功能。我使用的一个小部件是dijit.layout.TabContainer,它继承了StackContainer。 StackContainer订阅键盘事件并创建一些热键,如左箭头向左移动一个选项卡,依此类推。
现在问题:我想在TabContainer中禁用此热键功能。是否有我可以设置的配置选项(在API中找不到任何配置)来实现这一点,或者必须破解Dojo代码或者创建我自己的StackContainer和TabContainer版本以摆脱热键?我当然希望不要乱用Dojo代码。
最好的问候/ Fredrik
答案 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:“” });