是否可以使用Jquery differed object结构推迟点击响应?
所以我有一个点击事件,它会触发并调用一个很长的(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();
但事实并非如此。这甚至是可能还是只是没有这种联系?
答案 0 :(得分:4)
Deferred
和Promise
之类的异步机制的一个要点是不来阻止主JavaScript线程的执行。
不,在jQuery UI click
关闭之前,您无法完成dialog
处理程序。您的代码确实等待dialog
的调用返回(当然),但当然,只需的调用即可打开对话框。
相反,允许处理程序完成(可能停止事件的传播和/或默认操作)并使用对话框的回调来触发您想要执行的任何后续操作。