I am trying to achieve a loading effect for a button, as demonstrated in codepen.
I am using bootstrap 4
(beta 2) Jquery 3.2.1
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Group View</title>
<link rel="stylesheet" media="all" href="../css/bootstrap.css" >
<script src="../js/jquery.js"></script>
<script src="../js/bootstrap-bundle.js"></script>
</head>
<body>
<div>
<button type="button" class="btn btn-primary btn-lg">Submit Order</button>
</div>
<script>
$(document).ready(function() {
$('button').data('loading-text', 'loading...');
$('.btn').on('click', function() {
var $this = $(this);
$this.button('loading');
setTimeout(function() {
$this.button('reset');
}, 8000);
});
})
</script>
</body>
</html>
The above code does not display "loading..." when the button is clicked.
I'm not sure the
.button()
method in Bootstrap v4 has the options you are trying to use. The Codepen you link to uses Bootstrap v3.Here is how you could replicate the same behavior with Bootstrap 4.
Ran into this same issue a few days ago and nobody seems to have a solution. So here's my jQuery plugin that seems to provide the same behavior in Boostrap 4.
More details: How to Continue Using Buttons with “data-loading-text” in Bootstrap 4 with jQuery (my blog)
This feature is deprecated since v3.3.5 and has been removed in v4. Source