代码之家  ›  专栏  ›  技术社区  ›  westmark

如何禁用Dojo StackContainer中的热键

  •  2
  • westmark  · 技术社区  · 17 年前

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

    现在,我要在TabContainer中禁用这个热键功能。是否有一个配置选项可以设置(在API中找不到)来实现这一点,或者必须破解Dojo代码,或者可能创建自己的stackcontainer和tabcontainer版本来摆脱热键?当然,我更愿意不要乱弄Dojo代码。

    顺祝商祺/弗雷德里克

    2 回复  |  直到 17 年前
        1
  •  2
  •   Alex    17 年前

    只需用一个空的机身覆盖onkeypress:

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

    很有魅力。

        2
  •  0
  •   community wiki Heath Borders    17 年前

    我只是在这里编码,根本没有测试出来。我正在把这个维基化,如果有任何问题,请发布正确的来源。

    在名为com/stackoverflow/keypressstabcontainer.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,”{ /* *这是重要的部分。原始代码是: *模板测试环:“” *在下面的模板中,我们删除onkeypress侦听器, *因此,按键应该被忽略。 */ 模板测试环:“” (});