我想创建为ctrl+tap
做某事的元素。如何为其分配监听器?
我尝试使用iron-a11y-keys-behavior
https://elements.polymer-project.org/elements/iron-a11y-keys-behavior
和
keyBindings: {
'ctrl:tap': 'doSomething'
},
但它不起作用。
我可以使用listeners
或behaviors
之类的聚合物功能,还是应该使用VanillaJS自行编码?
答案 0 :(得分:0)
我找到的唯一解决方案是
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个方法,1个属性和1个侦听器,与'ctrl:tap': 'doSomething'
相比。
我真的很感激清洁解决方案。