Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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/75.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_Jquery Deferred - Fatal编程技术网

Javascript jQuery正在等待触发多个事件

Javascript jQuery正在等待触发多个事件,javascript,jquery,jquery-deferred,Javascript,Jquery,Jquery Deferred,是否可以在执行函数之前“等待”多个事件?我知道使用jQuery延迟obejcts使用$是可能的。当等待两个承诺解决时,我想知道仅仅是简单的旧事件是否可能 假设单击事件和自定义事件触发警报,例如: $.when("click", "customEvent").then(function(){ alert("yay"); }); 嗯,检查事件类型并以旧方式设置它们。简单的jQuery和JS 仅当两个事件都已完成/触发时,才会向1发出警报 您可以使用deferred,您只需要自己创建它们 var c

是否可以在执行函数之前“等待”多个事件?我知道使用
jQuery
延迟
obejcts使用
$是可能的。当
等待两个承诺解决时,我想知道仅仅是简单的旧事件是否可能

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

$.when("click", "customEvent").then(function(){ alert("yay"); });
嗯,检查事件类型并以旧方式设置它们。简单的jQuery和JS

仅当两个事件都已完成/触发时,才会向1发出警报

您可以使用deferred,您只需要自己创建它们

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"); 
});

我考虑过使用这种方法(可能会),我只是好奇他们的方法是否是一种整洁的“神奇”jQuery方式。谢谢你的回答:)@CrimsonChin我们不会坐等别人为你施魔法。你们应该在网上搜索或者自己试试。嗯,在我看来,我不认为整洁的解决方案总是有帮助的。如果你下定决心要做大事,你也需要肮脏的解决方案。
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"); 
});