2016-07-06 9 views
3

次の例でキーイベントが機能しないのはなぜですか? 'blur'イベントは機能しますが、私のテキストフィールドでキーイベントのどれも動作しません(私もkeydownを試しました)。キーイベントが機能しない理由

コントローラで 'control'構造を使ってみましたが、どちらも動作しません。

Ext.define('Plus.view.MyController', { 
    extend: 'Ext.app.ViewController', 

    alias: 'controller.mycontroller', 
    control: { 
     '#mytextfield': { 
      blur: function() { 
       alert("oink") 
      }, 
      keypress: function() { 
       alert("moo") 
      }, 
      keyup: function() { 
       alert("quack") 
      } 
     } 
    } 
}); 

Ext.define('Plus.view.MainView', { 
    extend: 'Ext.container.Container', 

    items: [{ 
     xtype: 'textfield', 
     id: 'mytextfield', 
     controller: 'mycontroller', 
     listeners: { 
      blur: function() { 
       alert("oink 2") 
      }, 
      keypress : function() { 
       alert("moo 2") 
      }, 
      keyup : function() { 
       alert("quack 2") 
      } 
     } 
    }] 
}); 

Ext.application({ 
    name: 'Plus', 
    autoCreateViewport: 'MainView', 
    launch: function() { 

    } 
}); 

私のフィドルはここにある:

https://fiddle.sencha.com/#fiddle/1d5d

私は明らかに何かが足りないのですか?

答えて

6

keypressおよびkeyupこれらのイベントは、enableKeyEventsがtrueに設定されている場合にのみ発生します。 これを設定すると、コードが機能します。私はコードが動作しているあなたのためのfidllerを作成しました。 Fiddle

+0

デフォルトでは、キーイベントはextJSでは機能しませんか? ...なぜ? ...それはとても奇妙に思える。 –

+0

ああ、彼らは3つのキーイベント火災のすべてについて、それを真に設定した後にのみ言及しました。うん、その奇妙な。 senchaに報告することができます。 – UDID

+0

私は、パフォーマンス上の理由から、デフォルトでスイッチを切ることが考えられます。 –

関連する問題