Javascript 单击外部模式窗口时重置引导模式
每当用户在模式窗口外单击以关闭而不是按下关闭按钮时,我在重置引导模式时遇到一些问题。每当模式窗口未正确重置时,我的datetimepicker就会停止工作 无论何时打开,我的modal都应该这样做: 但如果我在关闭窗口后点击模态窗口外的灰色区域打开窗口,就会发生这种情况: 每当我使用Javascript 单击外部模式窗口时重置引导模式,javascript,twitter-bootstrap,bootstrap-modal,Javascript,Twitter Bootstrap,Bootstrap Modal,每当用户在模式窗口外单击以关闭而不是按下关闭按钮时,我在重置引导模式时遇到一些问题。每当模式窗口未正确重置时,我的datetimepicker就会停止工作 无论何时打开,我的modal都应该这样做: 但如果我在关闭窗口后点击模态窗口外的灰色区域打开窗口,就会发生这种情况: 每当我使用Avbryt(disclose)按钮解除时,它都可以正常工作。 我没有得到任何错误,这是我使用的代码为我的模态 $scope.show = function() { ModalService.showMo
Avbryt
(disclose)按钮解除时,它都可以正常工作。
我没有得到任何错误,这是我使用的代码为我的模态
$scope.show = function() {
ModalService.showModal({
templateUrl: 'newProject.html',
controller: "NewProjectModalController"
}).then(function(modal) {
modal.element.modal();
modal.close.then(function(result) {
$('#newProjectModal').modal('hide');
$('body').removeClass('modal-open');
$('.modal-backdrop').remove();
}
});
});
}
$scope.dismiss = function () {
close(false, 500)
}
可以在上找到模式服务
我发现触发关闭的并不是背景,而是模态窗口的边缘。如果我击中小广场内模态的外部,它将被忽略,但如果我击中外部背景,则不会
当用户单击模式背景时,尝试在Avbryt按钮上触发单击事件。大概是这样的:
$('.modal-backdrop').click(function(){
$('.avbryt').trigger('click');
});
这应该绕过根本问题
参考:根据相关图片,您在项目中使用的是angular modal服务和bootstrap.js。所以我搜索了它的github回购协议,发现了这个问题: 根据那里的评论,您应该按以下方式更改代码:
ModalService.showModal({
templateUrl: 'newProject.html',
controller: "NewProjectModalController"
}).then(function(modal) {
modal.element.modal();
modal.close.then(function(result) {
$('#newProjectModal').modal('hide');
$('body').removeClass('modal-open');
$('.modal-backdrop').remove();
}
// added by me
modal.element.on('hidden.bs.modal', function () {// bootstrap event
modal.scope.close(false,500);
});
});
});
介意显示
ModalService
的代码吗?这里的代码太少了。如果下面的答案无效,请发布更多代码。(例如,close
的定义)@Pytth添加了ModalService的代码。还为问题添加了一个小的更新。我还注意到,在模式窗口外单击不会删除上一个窗口,而“取消”按钮会删除上一个窗口。这可能就是日历失败的原因,因为有多个ID。我更新了我的问题,因为我注意到你的代码有问题。模态解除实际上是由模态窗口外部但模态类内部的单击触发的,而不是由背景单击触发的。我还注意到,在模式窗口外单击不会删除上一个窗口,只会隐藏它。但是“驳回”按钮会删除它。谢谢你发现了一个类似的问题,我已经试了很久了。但是我得到了未捕获的TypeError:modal.scope.close不是一个函数
,知道吗?更新:Nevermind,问题解决了,刚刚输入了模态范围标识符,这可能就是您所需要的。非常感谢。很抱歉代码不起作用,但我已经在angular modal服务的官方JSFIDLE中尝试过了。这可能是由于您的代码和它之间的差异造成的@PhyCoMathSee更新的评论:)有效,只需更改范围:)精细:D@PhyCoMath