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">&times;</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'));