2017-01-12 2 views
0

ctrl+tapのために何かをする要素を作りたいと思います。それにリスナーを割り当てるにはどうしたらいいですか?ポリマー成分にcltr + tap listenerを追加する方法

私はiron-a11y-keys-behaviorhttps://elements.polymer-project.org/elements/iron-a11y-keys-behavior

keyBindings: { 
    'ctrl:tap': 'doSomething' 
}, 

を使用しようとしましたが、それは動作しません。

listenersまたはbehaviorsのようなポリマー機能を使用することはできますか、それともバニラJSを使用して自分でコード化する必要がありますか?

答えて

0

私が見つけた唯一の解決策は、私たちが'ctrl:tap': 'doSomething'に比較して、2つの以上のメソッド、プロパティ1および1人のリスナーを追加する必要がありますように、それはオーバーヘッドのように見える、私にとって

listeners: { 
    'tap': '_elementTapped' 
}, 
keyBindings: { 
    'ctrl+control:keydown': '_updatePressed', 
    'control:keyup': '_updatePressed' 
}, 
_ctrlPressed: false, 
_updatePressed: function(event) { 
    this._ctrlPressed = event.detail.ctrlKey; 
}, 
_elementTapped: function(){ 
    if(this._ctrlPressed){ 
     this.doSomething(); 
    } 
} 

です。

私は本当に清潔なソリューションに感謝します。

+2

なぜオーバーヘッドが必要ですか? 'ctrl'がタップリスナーの' e.detail.ctrlKey'フラグ( '_elementTapped')で直接押されたか確認できます – a1626

+0

ありがとう!私は正確に 'event.detail.sourceEvent.ctrlKey'でなければなりませんが、動作します。 – tomalec

関連する問題