jquery - 如何在jquery的while循环中捕获转义按键事件?
问题描述
我在 jquery 的无限循环中运行一个函数。我想在按下退出键时退出循环。我做不到。我的循环无限运行。以下是我到目前为止所做的:
var playLoop = function(){
var myVar;
var continueLoop = 1;
while(continueLoop === 1){
$(document).on("keyup",function(e){
if(e.key==="Escape"){
continueLoop = 0;
}
myVar = setInterval(addition,1000);
});
}
}
我想停止在循环内运行一个函数,即当按下“退出”键时最终是一个循环。我错过了什么?我该怎么做?
解决方案
您需要使用.setTimeout
,.clearTimeout
一旦您识别出按了退出键,您就可以取消它。下面的例子有效。
让我知道你是否需要别的东西。
// Start your playLoop after document is ready
$(document).ready(function() {
playLoop();
});
function playLoop() {
// Append a dot so you know it's working
$(".dots").append(".");
// Set a new timeout to count down
playLoopCountdown = setTimeout(playLoop, 1000);
}
// Attach escape key cancel
$(document).on("keyup", function(e) {
if (e.key === "Escape") {
// Stop playLoop
clearTimeout(playLoopCountdown);
// Tell user the timeout has been stopped
$(".dots").append("STOPPED");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>You need to click within this iframe for the escape keypress to be registered.</p>
<div class="dots"></div>
推荐阅读
- regex - Google Cloud Firestore 安全规则中正确的正则表达式语法是什么?
- javascript - AJAX 忽略 .Net 会话变量
- android - Android执行不同的http请求卡住
- java - java运行时异常的主要目标和原因以及规避java运行时异常的最佳实践
- python - 循环遍历 pandas 分组数据索引
- jquery - 呈现数据表列以忽略字母并按数字排序
- python - Python子进程:来回传递多个输入/输出
- reactjs - JSON输入错误的意外结束
- python - 将属性 pandas.DataFrame.shape 应用于存储在元组中的多个数据框
- vba - 删除值为零的数据标签然后重置 - VBA