JSFiddle - React, Tailwind, and code Playground
HTML
<a href="#popup" rel="popup">open</a>
<div id="popup" class="popup"> <a href="#new" rel="popup" onClick="rewrite('popup', 'blah')">Rewrite</a>
<div style="position:absolute; top:0; right:0;"><button class="clsbtn">close</button></div>
</div>
<div id="new" class="popup">
<div style="position:absolute; top:0; right:0;"><button class="clsbtn">close</button></div>
<textarea id="new-text"></textarea>
</div>
<a href="#new" rel="popup" onClick="rewrite('popup', 'blah')">Rewrite</a>
<div id="new2" class="popup">NEW
<textarea id="new-text2">text area 2</textarea>
</div>
CSS
#lean_overlay {
position: fixed;
z-index:100;
top: 0px;
left: 50%
height:100%;
width:100%;
background: #333;
display: none;
}
.popup {
background:#fff;
width:300px;
display:none;
min-height:150px;
}
JavaScript
(function($){$.fn.extend({leanModal:function(options){var defaults={top:100,overlay:0.5,closeButton:null};var overlay=$("<div id='lean_overlay'></div>");$("body").append(overlay);options=$.extend(defaults,options);return this.each(function(){var o=options;$(this).click(function(e){var modal_id=$(this).attr("href");$("#lean_overlay").click(function(){close_modal(modal_id)});$(o.closeButton).click(function(){close_modal(modal_id)});var modal_height=$(modal_id).outerHeight();var modal_width=$(modal_id).outerWidth();
$("#lean_overlay").css({"display":"block",opacity:0});$("#lean_overlay").fadeTo(200,o.overlay);$(modal_id).css({"display":"block","position":"fixed","opacity":0,"z-index":11000,"left":50+"%","margin-left":-(modal_width/2)+"px","top":o.top+"px"});$(modal_id).fadeTo(200,1);e.preventDefault()})});function close_modal(modal_id){$("#lean_overlay").fadeOut(200);$(modal_id).css({"display":"none"})}}})})(jQuery);
$(function() { $('a[rel*=popup]').leanModal({ top : 200, closeButton: ".popup-close" }); });
//Everything above this line isn't really that important. Just the popup javascript
function rewrite(id, text) {
$('#new-text').val(text);
}
$(document).ready(function(){
$(".clsbtn").on("click",function(){
$(".popup, #lean_overlay").css("display","none");
});
});