Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery暂停执行,直到调度事件_Javascript_Jquery_Events - Fatal编程技术网

Javascript jQuery暂停执行,直到调度事件

Javascript jQuery暂停执行,直到调度事件,javascript,jquery,events,Javascript,Jquery,Events,好的,我正在尝试实现类似控制台的行为,我需要暂停执行,直到某个事件被调度,我真正需要的是: var evt = $("element").waitForKeyDown(); 这个假设函数应该暂停执行,直到用户按下“element”元素上的一个键,该元素被定义为一个textfield。然后,当用户按下该文本字段上的任何键时,执行应继续,evt应包含与该事件相关的信息 这可以在javascript中实现吗?或者一个类似于的关闭行为。我担心javascript中没有阻塞操作,除了警报和提示。唯一的方

好的,我正在尝试实现类似控制台的行为,我需要暂停执行,直到某个事件被调度,我真正需要的是:

var evt = $("element").waitForKeyDown();
这个假设函数应该暂停执行,直到用户按下“element”元素上的一个键,该元素被定义为一个textfield。然后,当用户按下该文本字段上的任何键时,执行应继续,evt应包含与该事件相关的信息


这可以在javascript中实现吗?或者一个类似于的关闭行为。

我担心javascript中没有阻塞操作,除了警报和提示。唯一的方法是(尽管可能是错误的):


只需使用keydown事件。它正是您想要实现的:只在按下某个键时执行操作

您永远都不想在JavaScript中等待——只有一个线程,您需要它来处理可能进入页面其他部分的其他事件

相反,您要做的是在您希望等待的时间点之后,将所有应该发生的事情打包到
函数(){}
中。(此函数称为“continuation”,在JavaScript和其他高度异步的环境中,您会到处遇到这种模式。)

然后,您将使用以下jQuery注册新函数:

var evt = $("element").keydown(function(event){
   var keypressed = event.keyCode;

   // do whatever you'd like with the keypress.
});

您可以考虑使用KEYDOWN,但KEKEP(几乎是似是而非)并不能使您得到所有的按键,只是那些变成某种文本输入的键。

使用jQuery。


问题是我需要阻止执行,因为我想在这里实现的行为与alert、confirm和prompt相同。我需要等待用户输入一些数据。@Andrés当你说“阻止执行”时,我假设你的意思是阻止所有用户交互的网页,直到发出正确的按键事件,对吗?当我说阻止时,我的意思是警报、提示和确认具有相同的效果。我想在某个时间点停止我的脚本,然后当用户按下textfield上的return键时,对该textfield的内容执行一些操作我需要阻止执行,因为我想在这里实现的行为与alert、confirm和prompt相同。我需要等待用户输入一些数据,为什么不直接用匿名函数处理数据呢?比如说-
var evt = $("element").keydown(function(event){
   var keypressed = event.keyCode;

   // do whatever you'd like with the keypress.
});
var evt = $("element").keyDown(function(){
  //Rest of your code
});