1

我正在使用PNotify 3Bootstrap 3。我正在尝试使用PNotify网站上给出的示例

<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>

一切正常,但是当我单击任何按钮(确定/取消)关闭对话框时,对话框会关闭,但页面不会像单击按钮之前那样变为正常状态。

在我解决这个问题的调查过程中,我发现,当我点击按钮 PNotify 时,在下面添加一行来<body>标记:

<div class="ui-pnotify-modal-overlay" style="display: block;"></div>

关闭对话框后 PNotify 将此代码块更改为:

<div class="ui-pnotify-modal-overlay" style="display: none;"></div>

表示显示:块更改为显示:无

但问题是即使在我的项目中关闭对话框后,PNotify 也不会进行任何更改。

任何帮助将不胜感激。

4

3 回答 3

1

虽然我无法得到任何回应。但是我自己得到了一个不公平的解决方案。使用以下代码:

        function undoModal() {
        var elements = document.querySelectorAll('body > *');
        if (elements[0].outerHTML == '<div class="ui-pnotify-modal-overlay" style="display: block;"></div>') {
            elements[0].remove();
        }
    }
于 2017-02-25T10:02:17.147 回答
1

即使您的 undoModal 现在可以使用,您也不能保证它可以与未来的 PNotify 版本一起使用。如果任何属性将被附加到覆盖 DIV - 它将停止工作。所以永远不要拘泥于元素的内容,而是使用更优雅的方式来移除不需要的元素:

function undoModal() {
    $(".ui-pnotify-modal-overlay").remove();
}
于 2017-06-20T08:11:19.017 回答
0

刚刚遇到这个,这是一个确认的错误。

[确认模块]不使用历史模块时黑色覆盖不会被移除#214

解决方法(目前)是在页面上加载历史模块。它可以在选项中打开或关闭,并且仍然有效。

history: { history: false }

通过工作,我的意思是它设置display: none了添加<div 但不删除它。

<div class='ui-pnotify-modal-overlay' style='display: none;'>

我试过了,每个模态都在标签之后离开了覆盖 div,<body>所以它们只是堆积起来。

于 2017-06-22T16:37:11.833 回答