jQuery等待多个事件触发

Jon*_*lls 13 javascript jquery jquery-deferred

在执行函数之前是否可以"等待"多个事件?我知道可能用jQuery deferredobejcts $.when等待两个承诺来解决,但我想知道它是否可能只是简单的旧事件?

假设点击事件和自定义事件触发警报,例如:

$.when("click", "customEvent").then(function(){ alert("yay"); });
Run Code Online (Sandbox Code Playgroud)

Pau*_*cke 26

您可以使用延迟,您只需自己创建它们.

var clickDfd = $.Deferred();
var eventDfd = $.Deferred();
$("div").on("click", function(e) {
   clickDfd.resolve();
});

$("div").on("some-event", function(e) {
   eventDfd.resolve();
});

$.when(clickDfd, eventDfd).done(function(){ 
    alert("yay"); 
});
Run Code Online (Sandbox Code Playgroud)