JSFiddle - React, Tailwind, and code Playground
HTML
<button id="abre-modal" type="button" class="btn btn-default">Abrir modal</button>
<div id="modal-default" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModal" >
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModal"></h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
JavaScript
function build_modal(opt) {
var $this = $("#modal-default");
if ( opt.is_small ) {
$this.find(".modal-dialog").removeClass("modal-lg").addClass("modal-sm");
} else if ( opt.is_large ) {
$this.find(".modal-dialog").removeClass("modal-sm").addClass("modal-lg");
} else {
$this.find(".modal-dialog").removeClass("modal-sm").removeClass("modal-lg");
}
$this.find(".modal-title").html(opt.title);
$this.find(".modal-body").html(opt.body);
var include_buttons = "";
for ( var i in opt.buttons ) {
include_buttons += '<button type="button" class="btn ' + opt.buttons[i].type + '" onclick="' + opt.buttons[i].onclick + '">';
include_buttons += opt.buttons[i].text + '</button>';
}
if ( include_buttons != "" ) {
$this.find(".modal-footer").css("display", "block").html(include_buttons);
} else {
$this.find(".modal-footer").css("display", "none");
}
$this.modal();
}
$(function () {
var modal = {
title: 'Teste do modal',
is_large: true,
body: '<p>O modal está em perfeito estado?</p>',
buttons: [
{
text: "Não",
type: "btn-danger",
onclick: "reavaliar_metodo()"
},
{
text: "Sim",
type: "btn-success",
onclick: "set_method_as_top()"
}
]
};
$("#abre-modal").click(function() {
build_modal(modal);
});
});