Javascript 事件以等待对话框消失
在我正在使用Knockout.js处理的模式对话框表单中,“Submit”按钮触发一个方法,该方法应该隐藏对话框,然后设置变量的值Javascript 事件以等待对话框消失,javascript,jquery,html,knockout.js,Javascript,Jquery,Html,Knockout.js,在我正在使用Knockout.js处理的模式对话框表单中,“Submit”按钮触发一个方法,该方法应该隐藏对话框,然后设置变量的值 self.updateSubTask = function(subTask) { ... $('#subTaskDialog').modal('hide'); self.selectedSubTask(null); }; 调用此函数时,隐藏过程开始-对话框本身被删除-但在完成之前停止,灰色背景无限期地持续存在。经过一些调查,很可能是因为随后
self.updateSubTask = function(subTask) {
...
$('#subTaskDialog').modal('hide');
self.selectedSubTask(null);
};
调用此函数时,隐藏过程开始-对话框本身被删除-但在完成之前停止,灰色背景无限期地持续存在。经过一些调查,很可能是因为随后调用设置self.selectedSubTask
的值中断了隐藏“动画”。不幸的是,由于对话框的设置方式,模式调用必须在更改为selectedSubTask
之前进行。我尝试了以下方法:
_.defer(function() { self.selectedSubTask(null); })
$('#subTaskDialog').queue(function() { self.selectedSubTask(null); });
不幸的是,这两种方法都不起作用,行为也是一样的
我认为一个合理的做法是监听对话框何时被隐藏,并在该事件处理程序中包含
selectedSubTask
调用。然而,我很难找到实现这一目标的解决方案。任何关于如何做到这一点的建议,或任何其他实现我最终目标的方法,都将不胜感激。干杯 只需将函数绑定到模式隐藏的事件(此事件称为hidden.bs.modal
):
从hidden.bs.modal
上的引导文档中:
self.updateSubTask = function(subTask) {
$('#subTaskDialog').modal('hide');
// capture the modal's "hidden" event
$( "#subTaskDialog" ).on('hidden.bs.modal', function(){
self.selectedSubTask(null);
});
};
当模式对用户完成隐藏时(将等待CSS转换完成),将触发此事件
还有一个hide.bs.modal
事件,以防更适合您所需的功能。从引导文档中:
调用hide实例方法后,将立即触发此事件
你尝试过问题中的解决方案吗?我尝试过,但不幸的是,两者都没有帮助。不过,为这些建议干杯!谢谢你的回答,当我明天再次访问代码时,我会尝试一下,并让你知道它是否有效。