JSFiddle - React, Tailwind, and code Playground
by ppgab
HTML
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg paginator" role="document">
<div class="modal-content paginator-page paginator-page-active" id="pageHome">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">This is page Home</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
Page Home Content
</div>
<div class="modal-footer">
<button type="button" class="mr-auto btn btn-outline-secondary paginator-button" href="#page2">
To Page 2
</button>
<button type="button" class="btn btn-outline-secondary paginator-button" href="#page3">
To Page 3
</button>
</div>
</div>
<div class="modal-content paginator-page" id="page2">
<div class="modal-header">
<button type="button" class="btn btn-outline-secondary mr-auto paginator-button" href="#pageHome">
Back
</button>
<h5 class="modal-title" id="exampleModalLabel">This is page 2</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
...
CSS
.paginator-page{
display : none;
}
.paginator-page-active{
display : inherit;
}
JavaScript
$("#exampleModal").modal();
class Paginator{
constructor(parentElement){
this.parentElement = parentElement;
this.initEvents();
}
initEvents(){
this.parentElement.addEventListener("click", evt => {
if(evt.target.matches('.paginator-button')){
const pageSelector = evt.target.getAttribute('href');
this.switchToPage(pageSelector);
}
})
}
switchToPage(pageSelector){
this.parentElement.querySelector('.paginator-page-active').classList.remove('paginator-page-active');
this.parentElement.querySelector(pageSelector).classList.add('paginator-page-active');
}
}
const paginator = new Paginator(document.body.querySelector('.paginator'));