============ 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;
},
}
})
.
.
============= СТАРЫЙ ============================================
Объяснение: В следующем коде я отслеживаю, сколько разВы нажимаете кнопку «shift.50», используя свойство данных «pressCount».При первом нажатии я сохраняю событие нажатия в «keyPress», чтобы сравнить дельту (свойство, которое можно установить в «дельте») со вторым нажатием клавиши.Если есть два последовательных нажатия клавиш в пределах N (где 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;
}
},
}
})