如何将cltr + tap侦听器添加到聚合物元素中

时间:2017-01-12 00:59:29

标签: polymer

我想创建为ctrl+tap做某事的元素。如何为其分配监听器?

我尝试使用iron-a11y-keys-behavior https://elements.polymer-project.org/elements/iron-a11y-keys-behavior

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

但它不起作用。

我可以使用listenersbehaviors之类的聚合物功能,还是应该使用VanillaJS自行编码?

1 个答案:

答案 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'相比。

我真的很感激清洁解决方案。