【问题标题】:Customizing bootbox自定义引导箱
【发布时间】:2017-08-01 10:12:04
【问题描述】:

我正在尝试自定义引导盒设计。我已成功获得如下所示的输出:

这是我的代码

        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()。不是整个代码。

【问题讨论】:

  • 请检查message 变量。是空的
  • 根据我的代码,消息变量中有 div,其中包含消息。我将其放入模态页脚。根据引导框消息出现在 modal-body 上,但我正在尝试将消息放在 modal-footer 中。
  • 我检查了$(".my-popup").find(".bootbox-body").length==0。这意味着message变量中没有div。

标签: jquery twitter-bootstrap bootbox


【解决方案1】:

请检查下面提到的解决方案。

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

希望对你有所帮助。

【讨论】:

  • 除了OP在小提琴https://jsfiddle.net/dqbo9wxp/1/987654324@
  • 那么您希望每个警报都有单独的弹出窗口吗?
  • 是的,我已经更改了引导箱警报的设计,但它必须正常工作。像警报一样。随时随地发出警报。
【解决方案2】:

试试这个代码

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

bootbox.setDefaults 设置了引导框对话框中显示的许多默认选项。但是这里调用引导框对话框时会覆盖默认值('className')。

要保留默认值,您可以链接 jQuery 调用

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

DEMO

【讨论】:

  • 它是一个简单的验证警报。在不同的条件下它必须工作。我可以在工作中做到这一点,但我的代码对于一个警报来说很长。例如名字、姓氏、出生日期等字段都在那里,我不能每次都写 9-10 行代码来提醒。 bcoz my-popup 类没有做所有事情,Init 方法将消息从 modal-body 放到 modal-footer。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-10
相关资源
最近更新 更多