2017-02-25 59 views
1

我正在使用PNotify 3使用引導程序3。 我試圖用現場給出的例子PNotifyPNotify模式確認對話框使頁面不可訪問

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

一切工作正常,但在關閉上的任意鍵(OK/CANCLE)對話框點擊,對話框關閉,但該頁面不改變它正常狀態,因爲它是單擊按鈕之前。

在我的調查,以解決這個問題,我發現, 當我按一下按鈕PNotify添加一行略低於至<body>標籤:關閉對話框PNotify後

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

這個代碼塊更改爲:

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

裝置顯示:塊改變爲顯示:無

但問題是,即使在我的項目中關閉對話框後,PNotify也不做任何更改。

任何幫助將不勝感激。

回答

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(); 
     } 
    } 
1

即使你undoModal現在的工作,你不能保證它會與未來PNotify版本。如果任何屬性將被添加到疊加DIV - 它將停止工作。所以從不拘泥於元素的內容,而是用更優雅的方式來刪除不需要的元素:

function undoModal() { 
    $(".ui-pnotify-modal-overlay").remove(); 
} 
0

恰好碰到了這一點,這是一個確認的錯誤。

[Confirm module]The black overlay is'nt removed when the history module isn't used #214

解決方法(現在)是有歷史模塊加載到頁面上。它可以在選項中打開或關閉,並仍然可以工作。

history: { history: false }

而且通過工作,我的意思是它設置了加<divdisplay: none但不刪除它。

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

我嘗試過了,每個模態離開<body>標籤後覆蓋DIV權利,使他們只是堆積起來。