麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

關(guān)于ExtJS4.1:快捷鍵支持的問題

2019-11-20 22:46:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
問題一個(gè)頁(yè)面有兩個(gè)面板,都有一個(gè)【添加(F2)】按鈕,如何做快捷鍵支持?圖片示意

第一次實(shí)現(xiàn)
感覺應(yīng)該很簡(jiǎn)單,ExtJs提供了“Ext.util.KeyMap”,很容易做快捷鍵支持。
代碼示例

復(fù)制代碼 代碼如下:

/// <reference path="Ext/ext-all-debug-w-comments.js" />

 Ext.onReady(function () {

     var viewport = Ext.create('Ext.container.Viewport', {
         layout: {
             type: 'vbox',
             align: 'stretch'
         },
         padding: 10,
         items: [{
             xtype: 'panel',
             id: 'panelA',
             title: '快捷鍵測(cè)試A',
             tbar: [{
                 text: '添加(F2)'
             }],
             frame: true,
             flex: 1,
             html: '您好,這里顯示的表格或表單 。'
         }, {
             xtype: 'panel',
             id: 'panelB',
             title: '快捷鍵測(cè)試B',
             tbar: [{
                 text: '添加(F2)'
             }],
             frame: true,
             flex: 1,
             html: '您好,這里顯示的表格或表單 。'
         }]
     });

     Ext.create('Ext.util.KeyMap', {
         target: 'panelA',
         key: Ext.EventObject.F2,
         fn: function (key, ev) {
             alert('添加A');

             ev.stopEvent();

             return false;
         }
     });

     Ext.create('Ext.util.KeyMap', {
         target: 'panelB',
         key: Ext.EventObject.F2,
         fn: function (key, ev) {
             alert('添加B');

             ev.stopEvent();

             return false;
         }
     });
 });    

實(shí)際結(jié)果

打開瀏覽器后直接按F2沒有效果;打開瀏覽器后用鼠標(biāo)點(diǎn)擊A或B后再按F2同樣沒有效果。
第二次實(shí)現(xiàn)
原來(lái)是div元素必須增加tabindex=0的屬性才行。
代碼示例
復(fù)制代碼 代碼如下:

/// <reference path="Ext/ext-all-debug-w-comments.js" />

 Ext.onReady(function () {

     var viewport = Ext.create('Ext.container.Viewport', {
         layout: {
             type: 'vbox',
             align: 'stretch'
         },
         padding: 10,
         items: [{
             xtype: 'panel',
             id: 'panelA',
             title: '快捷鍵測(cè)試A',
             tbar: [{
                 text: '添加(F2)'
             }],
             frame: true,
             flex: 1,
             html: '您好,這里顯示的表格或表單 。',
             autoEl: {
                 tag: 'div',
                 tabindex: 0
             }
         }, {
             xtype: 'panel',
             id: 'panelB',
             title: '快捷鍵測(cè)試B',
             tbar: [{
                 text: '添加(F2)'
             }],
             frame: true,
             flex: 1,
             html: '您好,這里顯示的表格或表單 。',
             autoEl: {
                 tag: 'div',
                 tabindex: 0
             }
         }]
     });

     Ext.create('Ext.util.KeyMap', {
         target: 'panelA',
         key: Ext.EventObject.F2,
         fn: function (key, ev) {
             alert('添加A');

             ev.stopEvent();

             return false;
         }
     });

     Ext.create('Ext.util.KeyMap', {
         target: 'panelB',
         key: Ext.EventObject.F2,
         fn: function (key, ev) {
             alert('添加B');

             ev.stopEvent();

             return false;
         }
     });
 });

實(shí)際結(jié)果
打開瀏覽器后直接按F2沒有效果;打開瀏覽器后用鼠標(biāo)點(diǎn)擊A或B后再按F2就有效果了。

第三次實(shí)現(xiàn)
要解決打開瀏覽器之后不用點(diǎn)擊div就能識(shí)別快捷鍵,需要手動(dòng)調(diào)用foucs()方法。
代碼示例
復(fù)制代碼 代碼如下:

/// <reference path="Ext/ext-all-debug-w-comments.js" />

 Ext.onReady(function () {

     var viewport = Ext.create('Ext.container.Viewport', {
         layout: {
             type: 'vbox',
             align: 'stretch'
         },
         padding: 10,
         items: [{
             xtype: 'panel',
             id: 'panelA',
             title: '快捷鍵測(cè)試A',
             tbar: [{
                 text: '添加(F2)'
             }],
             frame: true,
             flex: 1,
             html: '您好,這里顯示的表格或表單 。',
             autoEl: {
                 tag: 'div',
                 tabindex: 0
             }
         }, {
             xtype: 'panel',
             id: 'panelB',
             title: '快捷鍵測(cè)試B',
             tbar: [{
                 text: '添加(F2)'
             }],
             frame: true,
             flex: 1,
             html: '您好,這里顯示的表格或表單 。',
             autoEl: {
                 tag: 'div',
                 tabindex: 0
             }
         }]
     });

     Ext.create('Ext.util.KeyMap', {
         target: 'panelA',
         key: Ext.EventObject.F2,
         fn: function (key, ev) {
             alert('添加A');

             ev.stopEvent();

             return false;
         }
     });

     Ext.create('Ext.util.KeyMap', {
         target: 'panelB',
         key: Ext.EventObject.F2,
         fn: function (key, ev) {
             alert('添加B');

             ev.stopEvent();

             return false;
         }
     });

     Ext.get('panelB').focus();
 });

實(shí)際結(jié)果
打開瀏覽器后直接按F2有效果了;打開瀏覽器后用鼠標(biāo)點(diǎn)擊A或B后再按F2就有效果了。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人毛片av在线 | 国产一级毛片国产 | 亚洲一区二区三区视频 | 亚洲网站在线 | 91九色网 | 最污网站 | 中文字幕网址 | 国产午夜精品理论片a级探花 | 久久久成人免费视频 | 国产精品久久av | 性生活香蕉视频 | 日韩黄色在线播放 | 日日噜噜噜噜久久久精品毛片 | 久久精热 | 日本黄色大片免费 | 91青青| 一区二区免费看 | 欧美日韩在线播放一区 | 色婷婷久久一区二区 | 成人一级视频 | 精品一区二区三区日本 | 日韩激情| 亚洲成人在线视频网站 | 成片免费观看大全 | 久色伊人 | 日韩欧美电影在线观看 | 国产一区二区三区视频观看 | 亚洲视频观看 | 成人午夜免费在线观看 | 狼伊千合综网中文 | 99麻豆久久久国产精品免费 | 美女视频网站黄色 | 欧美aⅴ视频 | 亚洲天堂岛国片 | 88xx成人永久免费观看 | 日韩视频一区二区在线观看 | 性爱网站| 亚洲精品欧美二区三区中文字幕 | 色综合一区二区 | 亚洲免费毛片基地 | 久久伊人精品视频 |