Javascript 检测jQuery触发器何时完成

Javascript 检测jQuery触发器何时完成,javascript,jquery,Javascript,Jquery,当上述函数运行时,它会在所有输入上触发。如何判断由于上述操作而发生的所有事件何时已完成?我想我是在问jQuerywhen方法,但不是完全确定 我的努力是: $('input').trigger('input') 更新:谢谢你的评论,听起来我对这个问题想得太多了。我担心触发器可能会异步运行…$('input')。触发器('input')遵循顺序执行。。。假设没有一个处理程序执行异步进程 如果他们确实有异步进程,那么我们就不走运了,因为我们无法访问这些承诺 如果没有由目标处理程序启动的异步进程,那

当上述函数运行时,它会在所有输入上触发。如何判断由于上述操作而发生的所有事件何时已完成?我想我是在问jQuery
when
方法,但不是完全确定

我的努力是:

$('input').trigger('input')
更新:谢谢你的评论,听起来我对这个问题想得太多了。我担心触发器可能会异步运行…

$('input')。触发器('input')
遵循顺序执行。。。假设没有一个处理程序执行异步进程

如果他们确实有异步进程,那么我们就不走运了,因为我们无法访问这些承诺

如果没有由目标处理程序启动的异步进程,那么将在所有输入处理程序被激发后执行下一行

$.when( $('input').trigger('input')).done(
   function (x) {
      if (!$('#mybutton').hasClass('clobbered') {
         submitData();
      }
   }
);

因此,在上述情况下,
do something
部分将仅在调用所有处理程序后被调用,但不一定在这些处理程序启动的任何异步进程后被调用…

我不知道这是否有助于您,如果我理解正确,您会在某些事件实际触发时尝试执行某些操作,对吗

所以我做了一个小实验如下:

$('input').trigger('input')
//do something
它只是工作


我假设您确切地知道有多少个
输入
,但如果不是真的,您可以检查
$(输入)
长度
,使计数正确。

$('input')。触发器('input')
遵循顺序执行。。。假设没有一个处理程序执行异步进程。。。。如果他们这样做了,我们就不走运了,因为我们得不到这些承诺。。。如果没有目标处理程序启动的异步进程,那么在所有输入处理程序都启动后,下一行将被执行谢谢,听起来好像我想得太多了-Pit是不可能的,因为
$('input')。trigger('input')
返回用于调用
trigger
的jQuery对象集,因此
done
处理程序将立即执行。我不确定您的示例是否正确。我希望触发器事件在语句之后立即完成,并且担心触发器可能会异步运行。我对您的需求感到困惑,“触发器异步运行”?事件永远不会异步触发,但回调是无效的。您触发一个事件,其他人监听它并执行回调,此回调不会阻止顺序代码。如果希望回调仅在侦听了可计数事件时被调用,则只需进行计数。一旦满足条件,回调将立即运行。我不明白为什么我的代码不符合你的要求。我已经把这些代码放在网上了,请检查:,也许可以告诉我们你想存档什么。
<input type="text">
<input type="text">
<input type="text">
<input type="text">
<input type="text">

<button type="button">Not yet!</button>
var numberOfInputs = 5;
var eventCounts = 0;

$(document).on('input', function (e) {
    eventCounts++;    
    if (numberOfInputs === eventCounts) {
        $('button').text('Ready to go!');
    }
});

$('input').trigger('input');