我正在应用程序中实现一个特殊字段,当用户输入getQuantityString(R.plurals.stars, quantity > 1f ? 2 : 1, quantity):
字符时,将弹出一个窗口,以便用户可以访问预定义的变量...
@ (shift + 50)
我的问题是:我不希望用户仅按一次键时出现窗口,我希望当用户按两次键时出现窗口。
有可能吗?
答案 0 :(得分:1)
============ NEW ================================ ============
编辑:为您修改并清理了代码-此代码效率更高,并且不包含任何“错误”(其他代码中有一些缺陷)。.
说明:我基本上会收集所有“ shift.50”按键并比较它们的增量-然后覆盖-这意味着,如果您按“ shift.50”,那么直到5分钟后才再按一次(将是第二次单击旧代码),那么您实际上必须单击3次才能触发“执行所需”事件。
https://jsfiddle.net/yL57kbhf/
var myapp = new Vue({
el: '#app',
data: {
delta: 1000, // in ms
keyPress: null,
},
methods: {
keyPressed(key) {
if(this.keyPress !== null){
let d = key.timeStamp - this.keyPress.timeStamp;
if(this.delta > d){
alert('do something here!')
}
}
this.keyPress = key;
},
}
})
。
。
============== OLD ============================== =============
说明:在以下代码中,我跟踪您使用数据属性'pressCount'单击'shift.50'按钮的次数。第一次按下时,我将点击事件存储在“ keyPress”中,以比较第二次按下的增量(可以在“ delta”下设置的属性)。如果N内连续有2次按键(其中N =增量),则可以“做有需要的工作”。
https://jsfiddle.net/c0tk6pbx/
var myapp = new Vue({
el: '#app',
data: {
delta: 1000, // in ms
pressCount: 0,
firstPress: null,
},
methods: {
keyPressed(key) {
this.pressCount++;
if(this.pressCount === 1){
this.firstPress = key;
}
if(this.pressCount === 2){
let d = key.timeStamp - this.firstPress.timeStamp
if(this.delta > d){
alert("do something here");
}
this.pressCount = 0;
}
},
}
})