我有一个像$element.trigger('customEvent1')
由于事件处理程序可能包含用户输入(例如用户选择继续或中止的确认对话框),我需要等待事件处理程序完成。此customEvent1
可能还有多个事件处理程序。
如何使用deferred等待所有事件处理程序完成?
到目前为止,我已尝试过这个
$.when($element.trigger('customEvent1')).then(userActionCallback)
在订阅者中
$(document).on('customEvent1', '#element', function(evt) {
var deferred = $.Deferred();
//user dialog Yes to resolve and No to reject
return deferred.promise();
});
但它不等待用户输入。谢谢你的帮助。
对于注释,触发器和订阅者/事件处理程序不在同一文档中。
更新1
如我所知,我已尝试过这个
$.when($element.triggerHandler('customEvent1')).then(userActionCallback);
对于听众
$element.on('customEvent1', function(evt)
var deferred = $.Deferred();
//user dialog Yes to resolve and No to reject
return deferred.promise();
});
这很有效。但是如果我正在使用
那怎么样$.when('customEvent1').then(userActionCallback);
我应该如何让听众延期?