2017-08-01 50 views
6

我正在嘗試定製bootbox設計。我已經成功地讓這表明像下面的輸出: enter image description here定製bootbox

這裏我的代碼是

 var dialog = bootbox.alert({ 
    closeButton: false, 
     title: false, 
     message: 'hello', 
     className: "my-popup" 
     }); 
     dialog.init(function(){ 
var message = $(".my-popup").find(".bootbox-body"); 
$(".my-popup").find(".modal-footer").prepend(message); 
$(".my-popup").find(".modal-footer div").css({"display":"inline-block", "padding-right":"10px", "color":"#f7f7f7"}); 
$(".my-popup").find(".modal-body").remove();  
}); 

這個效果很好。但是我的頁面上還有更多的提醒,我也想這樣顯示。 所以我試圖縮小上面的代碼或設置bootbox的公共屬性,但之後我的init函數停止工作。

這裏是fiddle。 我使用bootbox.setDefaults來設置一個公共類,然後嘗試給予警報,但init現在不工作。 有沒有辦法通過我可以設置初始化函數bootbox.setDefaults 所以我只是簡單地每次調用bootbox.alert()。不是整個代碼。

+0

請檢查'message'變量。它是空的 –

+0

根據我的代碼,在包含消息的消息變量中有div。這是我把模態的腳註。根據引導框消息來模態身體,但我試圖把消息在模態頁腳。 –

+0

我檢查了$(「。my-popup」)。find(「。bootbox-body」)。length == 0'。這意味着'message'變量中沒有div。 –

回答

2

試試這個代碼

var dialog = bootbox.alert('hello').addClass('my-popup'); 

bootbox.setDefaults設置許多在bootbox dialog.But這裏的默認值( '的className')中的默認選項得到調用bootbox對話框時覆蓋。

要保留默認值,你可以鏈接一個jQuery調用

bootbox.alert('hello').addClass('my-popup'); 

DEMO

+0

其驗證的簡單警報。在不同的情況下,它必須工作。我可以在工作中得到這個,但是我的代碼對於一個警報來說很長。例如,名字,姓氏,出生日期等字段在那裏,我不能每次寫9-10行代碼。 bcoz my-popup類沒有做任何事情,Init方法將消息從模態體傳遞給模態頁腳。 –

2

請查看下文提到的解決方案。

$(document).ready(function() { 
 
    bootbox.setDefaults({ 
 
     closeButton: false, 
 
     title: false, 
 
     className: 'my-popup' 
 
    }); 
 
    dialog.init(function() { 
 
     var message = $(".bootbox.modal").find(".bootbox-body"); 
 
     $(".bootbox.modal").find(".modal-body").remove(); 
 
     $(".bootbox.modal").find(".modal-footer").prepend(message); 
 
     $(".bootbox.modal").find(".modal-footer div").css({"display": "inline-block", "padding-right": "10px", "color": "#f7f7f7"}); 
 
    }); 
 
}); 
 
var dialog = bootbox.alert('Hello World!');
.new-container { 
 
    width: 50%; 
 
    margin: 0 auto; 
 
    text-align: center; 
 
    display:none; 
 
} 
 

 
.new-container h2, .modal-content { 
 
    font-size: 1.5em; 
 
    position: relative; 
 
    background: #ff4d4d !important; 
 
    padding: .3em; 
 
    -moz-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3); 
 
    -webkit-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3); 
 
    box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3); 
 
    font-family: Baskerville; 
 
    font-style: italic; 
 
} 
 

 
.new-container h2:before, .modal-content:before, .new-container h2:after, .modal-content:after { 
 
    content: ""; 
 
    position: absolute; 
 
    display: block; 
 
    bottom: -1em; 
 
    border: 1em solid #ff4d4d; 
 
    z-index: -1; 
 
} 
 

 
.new-container h2:before, .modal-content:before { 
 
    left: -1em; 
 
    border-right-width: 1em; 
 
    border-right-color: #a51414; 
 
    border-left-color: transparent; 
 
    -moz-box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); 
 
    -webkit-box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); 
 
    box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); 
 
} 
 
.modal-footer { 
 
    padding: 15px; 
 
    text-align: right; 
 
    border-top: none; 
 
} 
 
.new-container h2:after, .modal-content:after { 
 
    right: -1em; 
 
    border-left-width: 1em; 
 
    border-left-color: #a51414; 
 
    border-right-color: transparent; 
 
    -moz-box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.3); 
 
    -webkit-box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.3); 
 
    box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.3); 
 
} 
 

 
.modal-footer{ 
 
    padding:10px; 
 
    border-top: none !important; 
 
    text-align:center; 
 
} 
 
.my-popup .modal-body{ 
 
    padding: 10px; 
 
    color:#f7f7f7; 
 
}
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 
 
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/4.4.0/bootbox.min.js"></script>

我希望這會幫助你。

+0

您提供的其他代碼作爲解決方案,而不是OPO在小提琴中創建的'https:// jsfiddle.net/dqbo9wxp/1 /' – Shiladitya

+0

它是否適用於多個警報 –

+0

https://jsfiddle.net/fgmtk8kz/,它結合了所有警報 –