我正在使用 pnotify 3 带有 bootstrap 3 。我正在尝试使用网站上给出的示例
<button class="btn btn-default dropdown-toggle" onclick="(new PNotify({
title: 'Confirmation Needed',
text: 'Are you sure?',
icon: 'glyphicon glyphicon-question-sign',
hide: false,
confirm: {
confirm: true
},
buttons: {
closer: false,
sticker: false
},
history: {
history: false
},
addclass: 'stack-modal',
stack: {'dir1': 'down', 'dir2': 'right', 'modal': true}
})).get().on('pnotify.confirm', function(){
alert('Ok, cool.');
}).on('pnotify.cancel', function(){
alert('Oh ok. Chicken, I see.');
});" data-toggle="dropdown">Modal Confirm Dialog</button>
所有工作正常,但是当我关闭对话框单击任何按钮(确定/cancle)时,对话框关闭,但页面不会像单击按钮之前那样更改为正常状态。
在我解决此问题的调查中,我发现,当我单击按钮pnotify时,在下面添加一行到<body>
标签:
<div class="ui-pnotify-modal-overlay" style="display: block;"></div>
关闭对话框后,将此代码块更改为:
<div class="ui-pnotify-modal-overlay" style="display: none;"></div>
表示显示:块更改为显示:无
,但问题是即使关闭我的项目中的对话框,Pnotify也不会进行任何更改。
任何帮助将不胜感激。
,尽管我无法得到任何响应。但是我自己得到了一个非亲戚的解决方案。使用以下代码:
function undoModal() {
var elements = document.querySelectorAll('body > *');
if (elements[0].outerHTML == '<div class="ui-pnotify-modal-overlay" style="display: block;"></div>') {
elements[0].remove();
}
}
即使您的非模式现在可以使用,也无法保证它将与未来的pnotify版本一起使用。如果将任何属性附加到覆盖div - 它将停止工作。因此,永远不要坚持元素的内容,而是使用更优雅的方法来删除不必要的元素:
function undoModal() {
$(".ui-pnotify-modal-overlay").remove();
}
刚刚遇到了这一点,这是一个确认的错误。
[确认模块]当历史模块未使用#214
时,黑色覆盖层不会删除。解决方法(目前)是在页面上加载历史记录模块。它可以在选项中打开或关闭,并且仍然有效。
history: { history: false }
通过工作,我的意思是在添加的<div
上设置display: none
,但不会删除它。
<div class='ui-pnotify-modal-overlay' style='display: none;'>
我尝试了一下,每种模态在<body>
标签之后就离开了覆盖层,因此它们只是堆积。