web/static/css/jq-css/demos/tabs/manipulation.html
changeset 30 81d408373dde
equal deleted inserted replaced
29:1f2c13ece5e9 30:81d408373dde
       
     1 <!DOCTYPE html>
       
     2 <html lang="en">
       
     3 <head>
       
     4 	<meta charset="UTF-8" />
       
     5 	<title>jQuery UI Tabs - Simple manipulation</title>
       
     6 	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
       
     7 	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
       
     8 	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
       
     9 	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
       
    10 	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
       
    11 	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
       
    12 	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
       
    13 	<link type="text/css" href="../demos.css" rel="stylesheet" />
       
    14 	<style type="text/css">
       
    15 		#dialog label, #dialog input { display:block; }
       
    16 		#dialog label { margin-top: 0.5em; }
       
    17 		#dialog input, #dialog textarea { width: 95%; }
       
    18 		#tabs { margin-top: 1em; }
       
    19 		#tabs li .ui-icon-close { float: left; margin: 0.4em 0.2em 0 0; cursor: pointer; }
       
    20 		#add_tab { cursor: pointer; }
       
    21 	</style>
       
    22 	<script type="text/javascript">
       
    23 	$(function() {
       
    24 		var $tab_title_input = $('#tab_title'), $tab_content_input = $('#tab_content');
       
    25 		var tab_counter = 2;
       
    26 
       
    27 		// tabs init with a custom tab template and an "add" callback filling in the content
       
    28 		var $tabs = $('#tabs').tabs({
       
    29 			tabTemplate: '<li><a href="#{href}">#{label}</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>',
       
    30 			add: function(event, ui) {
       
    31 				var tab_content = $tab_content_input.val() || 'Tab '+tab_counter+' content.';
       
    32 				$(ui.panel).append('<p>'+tab_content+'</p>');
       
    33 			}
       
    34 		});
       
    35 
       
    36 		// modal dialog init: custom buttons and a "close" callback reseting the form inside
       
    37 		var $dialog = $('#dialog').dialog({
       
    38 			autoOpen: false,
       
    39 			modal: true,
       
    40 			buttons: {
       
    41 				'Add': function() {
       
    42 					addTab();
       
    43 					$(this).dialog('close');
       
    44 				},
       
    45 				'Cancel': function() {
       
    46 					$(this).dialog('close');
       
    47 				}
       
    48 			},
       
    49 			open: function() {
       
    50 				$tab_title_input.focus();
       
    51 			},
       
    52 			close: function() {
       
    53 				$form[0].reset();
       
    54 			}
       
    55 		});
       
    56 
       
    57 		// addTab form: calls addTab function on submit and closes the dialog
       
    58 		var $form = $('form',$dialog).submit(function() {
       
    59 			addTab();
       
    60 			$dialog.dialog('close');
       
    61 			return false;
       
    62 		});
       
    63 
       
    64 		// actual addTab function: adds new tab using the title input from the form above
       
    65 		function addTab() {
       
    66 			var tab_title = $tab_title_input.val() || 'Tab '+tab_counter;
       
    67 			$tabs.tabs('add', '#tabs-'+tab_counter, tab_title);
       
    68 			tab_counter++;
       
    69 		}
       
    70 
       
    71 		// addTab button: just opens the dialog
       
    72 		$('#add_tab')
       
    73 			.button()
       
    74 			.click(function() {
       
    75 				$dialog.dialog('open');
       
    76 			});
       
    77 
       
    78 		// close icon: removing the tab on click
       
    79 		// note: closable tabs gonna be an option in the future - see http://dev.jqueryui.com/ticket/3924
       
    80 		$('#tabs span.ui-icon-close').live('click', function() {
       
    81 			var index = $('li',$tabs).index($(this).parent());
       
    82 			$tabs.tabs('remove', index);
       
    83 		});
       
    84 	});
       
    85 	</script>
       
    86 </head>
       
    87 <body>
       
    88 
       
    89 <div class="demo">
       
    90 
       
    91 	<div id="dialog" title="Tab data">
       
    92 		<form>
       
    93 			<fieldset class="ui-helper-reset">
       
    94 				<label for="tab_title">Title</label>
       
    95 				<input type="text" name="tab_title" id="tab_title" value="" class="ui-widget-content ui-corner-all" />
       
    96 				<label for="tab_content">Content</label>
       
    97 				<textarea name="tab_content" id="tab_content" class="ui-widget-content ui-corner-all"></textarea>
       
    98 			</fieldset>
       
    99 		</form>
       
   100 	</div>
       
   101 
       
   102 	<button id="add_tab">Add Tab</button>
       
   103 
       
   104 	<div id="tabs">
       
   105 		<ul>
       
   106 			<li><a href="#tabs-1">Nunc tincidunt</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>
       
   107 		</ul>
       
   108 		<div id="tabs-1">
       
   109 			<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>
       
   110 		</div>
       
   111 	</div>
       
   112 
       
   113 </div><!-- End demo -->
       
   114 
       
   115 <div class="demo-description">
       
   116 	<p>Simple tabs adding and removing.</p>
       
   117 </div><!-- End demo-description -->
       
   118 
       
   119 </body>
       
   120 </html>