获取默认操作以供以后在javascript中使用

时间:2015-12-15 16:45:53

标签: javascript

我有一个被解雇的事件。我想改变这个事件的行为。

$('window').on('resize', function (ev) {
  ev.preventDefault(); // this needs to be "deferred"
  Game.pause();
  someAsyncPromise().then(result => {
    Game.resume();
    // continue the default action here
  });
})

是否可以用这种方式推迟使用javascript的事件的默认操作?

1 个答案:

答案 0 :(得分:2)

  

是否可以用这种方式推迟使用javascript的事件的默认操作?

不,一旦所有事件处理程序都返回并且事件已完成路由,浏览器将处理触发默认操作,除非它已被阻止。您无法暂停事件(当然,除了在处理程序中运行同步代码之外),或重新发出默认操作。

当您希望默认发生时尝试再次发起事件很有诱惑力,但即使在可能的情况下也会出现问题(重新触发事件处理程序,许多事件都可以只能由用户等发起,并且我认为无论如何都不可能。

旁注:由于LGSon pointed outthat particular event没有任何默认操作,因此无需担心会阻止它,也无需尝试重​​新启动稍后再开始吧但问题仍然适用于一般情况。