JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/ui-lightness/jquery-ui.css">
<button id="add_tab">Add Tab</button>
<a href="/echo/html/" class="moreContent">More content</a>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>
</ul>
<div id="tabs-1">
<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
</div>
</div>
CSS
#dialog label, #dialog input { display:block; }
#dialog label { margin-top: 0.5em; }
#dialog input, #dialog textarea { width: 95%; }
#tabs { margin-top: 1em; }
#tabs li .ui-icon-close { float: left; margin: 0.4em 0.2em 0 0; cursor: pointer; }
#add_tab { cursor: pointer; }
JavaScript
var $tab_title_input = $("#tab_title"),
$tab_content_input = $("#tab_content");
var tab_counter = 2;
// tabs init with a custom tab template and an "add" callback filling in the content
var $tabs = $("#tabs").tabs({
tabTemplate: "<li><a href='#{href}'>#{label}</a> <span class='ui-icon ui-icon-close'>Remove Tab</span></li>",
add: function(event, ui) {
var tab_content = "Tab " + tab_counter + " content.";
$(ui.panel).append("<p>" + tab_content + "</p>");
}
});
function addTab() {
var tab_title = "Tab " + tab_counter;
$tabs.tabs("add", "#tabs-" + tab_counter, tab_title);
tab_counter++;
}
// addTab button: just opens the dialog
$("#add_tab").button().click(addTab);
$(".moreContent").click(function( event ){
event.preventDefault();
loadContent( this.href );
});
function loadContent( url ) {
var selected = $tabs.tabs('option', 'active');
$tabs.tabs("url", selected , url ).tabs("load", selected);
}
// close icon: removing the tab on click
// note: closable tabs gonna be an option in the future - see http://dev.jqueryui.com/ticket/3924
$("#tabs span.ui-icon-close").live("click", function() {
var index = $("li", $tabs).index($(this).parent());
$tabs.tabs("remove", index);
});