延迟的JQuery事件触发器

时间:2014-08-17 11:36:39

标签: javascript jquery javascript-events jquery-deferred

我有一个像$element.trigger('customEvent1')

这样的自定义JQuery事件

由于事件处理程序可能包含用户输入(例如用户选择继续或中止的确认对话框),我需要等待事件处理程序完成。此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);

我应该如何让听众延期?

0 个答案:

没有答案
相关问题