javascript - js : trigger function after a bunch of events were called

标签 javascript jquery events dom-events prototype

我需要在几个事件结束时调用一个函数。假设我有 9 个点击监听器、10 个蓝色监听器、一些按键上/下监听器等。

解决方案是修改所有内容并添加函数调用。

但这……呃……蹩脚。

我是否可以一次性添加对所有事件(以及任何 future 定义的事件)的调用?

也许可以以某种方式延长事件?

最佳答案

误解了问题。我将这个答案留在这里作为引用,尽管它不会在所有事件上触发。

<小时/>

我会为此使用 promise 。即:使用 Q和一个事件计数器:

   var deferred = Q.defer();

   ...
   var allEventsRequired = { ev1 : false, ev2: false };
   function tryToResolvePromise() {
       for(var k in allEventsRequired){
           if( !allEventsRequired[k] ) return;
       }
       deferred.resolve();
   }
   ...
   function markEventAsFired(name) { 
         allEventsRequired[name] = true; 
         tryToResolvePromise(); 
   }
   ...

   deferred.promise.then(function() { ... this will trigger when all events got fired ... } );

从触发每个事件的位置调用 markEventAsFired( name ) 。如果您将来需要任何新事件,只需将其名称添加到 map allEventsRequired 中即可。不要忘记将它们初始化为 false。

关于javascript - js : trigger function after a bunch of events were called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678980/

相关文章:

javascript - 显示/隐藏 google maps api 无法正常工作

javascript - jquery 上的 Woocommerce 单选按钮检查

javascript - 如果jquery live event代码已被删除,我还需要解绑它吗?

linux - inotify 会在删除之前或之后触发 IN_DELETE 吗?

redirect - Electron:阻止/取消页面导航

javascript - 与 Cloud Firestore 使用react

javascript - onbeforeunload jquery 和 css 样式处理程序?

javascript - 如何使用 JavaScript 或 jQuery 在 html 页面中添加文档类型

javascript - jqPlot:从 x 轴删除小数

javascript - 提交选择选项和当前页面 url 参数