2

是否可以使用Jquery 不同的对象结构来推迟点击响应?

所以我有一个点击事件触发并调用一个长时间(ish)运行的进程,延迟进程。我只想在延迟过程完成后从点击中返回,即

$('form .modalPopupSearch').click(function (e) {
     //return once the dialogopen event is complete and not before!
     $("#divSearching").dialog('open');

});

我想只是添加promise()到这个可能会做到这一点:

$('form .modalPopupSearch').click(function (e) {
     //return once the dialogopen event is complete and not before!
     $("#divSearching").dialog('open');

}).promise();

但事实并非如此。这甚至可能吗,还是只是不能以这种方式连接?

4

1 回答 1

4

Deferred异步机制的要点之一Promise阻止主 JavaScript 线程的执行。

不,您不能click等到 jQuery UIdialog关闭后才完成处理程序。您的代码确实等待调用dialog返回(当然),但自然地,该调用只是打开对话框。

相反,允许处理程序完成(可能停止事件的传播和/或默认操作)并使用对话框的回调来触发您想要执行的任何后续操作。

于 2013-07-23T14:29:53.027 回答