黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Extjs keyup事件bug修正

系統 2294 0

? ? 用extjs做項目大部分都會用到一個組件combobox去實現聯想框的功能,如果實現這個功能肯定是要用到事件機制的keyup

extjs為我們提供的keyup的事件,但是前提是要開啟enableKeyEvents:true,打開鍵盤事件

?? 非常奇怪的現象出現了,在監聽其中測試事件,keyup始終就是沒法fire ,同樣的配置下去測試keydown,keypress都可以正確的fire ,沒法獲得keyup的事件就沒有辦法及時的獲取文本框 的內容,這樣的話如何實現聯想框,這個問題困擾了我整整一天太悲劇了,最后在看一個國外網友的一段代碼修改的extjs的keyup的bug

      Ext.override(Ext.form.ComboBox, {
            initEvents : function(){
                Ext.form.ComboBox.superclass.initEvents.call(this);
                this.keyNav = new Ext.KeyNav(this.el, {
                    "up" : function(e){
                        this.inKeyMode = true;
                        this.selectPrev();
                    },
                    "down" : function(e){
                        if(!this.isExpanded()){
                            this.onTriggerClick();
                        }else{
                            this.inKeyMode = true;
                            this.selectNext();
                        }
                    },
                    "enter" : function(e){
                        this.onViewClick();
                        this.delayedCheck = true;
                        this.unsetDelayCheck.defer(10, this);
                    },
                    "esc" : function(e){
                        this.collapse();
                    },
                    "tab" : function(e){
                        this.onViewClick(false);
                        return true;
                    },
                    scope : this,
                    doRelay : function(foo, bar, hname){
                        if(hname == 'down' || this.scope.isExpanded()){
                           return Ext.KeyNav.prototype.doRelay.apply(this, arguments);
                        }
                        return true;
                    },
                    forceKeyDown : true
                });
                this.queryDelay = Math.max(this.queryDelay || 10,
                        this.mode == 'local' ? 10 : 250);
                this.dqTask = new Ext.util.DelayedTask(this.initQuery, this);
                if(this.typeAhead){
                    this.taTask = new Ext.util.DelayedTask(this.onTypeAhead, this);
                }
                if((this.editable !== false) && !this.enableKeyEvents) {
                    this.el.on("keyup", this.onKeyUp, this);
                }
                if(this.forceSelection){
                    this.on('blur', this.doForce, this);
                }
            },
            onKeyUp : function(e){
                if(this.editable !== false && !e.isSpecialKey()){
                    this.lastKey = e.getKey();
                    this.dqTask.delay(this.queryDelay);
                }
                Ext.form.ComboBox.superclass.onKeyUp.call(this, e);
            }
        });
  

? ?? 沒想到keyup還真的實現了

最終的聯想效果如下圖
Extjs keyup事件bug修正

順便說一下,我用的是2.2版本的不知道3以上的版本keyup是不是有同樣的問題

?

Extjs keyup事件bug修正


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論