jquery-ui-bootstrap動態添加和刪除標簽頁封裝【效果更炫】


1、效果圖

2、導入js和css

<link rel="stylesheet" href="css/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="font/Font-Awesome/css/font-awesome.css">
<link rel="stylesheet" type="text/css" href="css/jquery-ui-bootstrap/css/custom-theme/jquery-ui-1.10.0.custom.css"/>
<link rel="stylesheet" type="text/css" href="css/default.css"></head>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script src="css/jquery-ui-bootstrap/assets/js/jquery-ui-1.10.0.custom.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/default.js"></script>

  default.css是對tabs效果繪制

/*jquery-ui-bootstrap tabs*/
.tabs ul {
/* border-bottom: 3px solid #39aef5!important;*/
}
.tabs ul li:not(:first-child){
padding-right:15px!important;
 
}
.tabs ul li{
border-top:1px solid #ccc!important;
border-left:1px solid #ccc!important;
/*border-bottom: 1px solid #39aef5!important;*/
}
.tabs ul li a{
color:#666!important;
}
.tabs ul li span:hover{
color:#C61010!important;
}
.tabs ul li a:hover,
.tabs ul li:hover,
.tabs ul li:focus{
border-bottom: 0!important;
}
.tabs ul li:last-child{
border-right:1px solid #ccc!important;
}
.tabs ul li.ui-state-active.ui-tabs-active a,
.tabs ul li.ui-state-active.ui-tabs-active span,
.tabs ul li.ui-state-active.ui-tabs-active{
	/*border-top:3px solid red!important;*/
	background: #39aef5!important;
	border-bottom: 2px solid #39aef5!important;
	color:#ddd!important;
}
.tabs ul li.ui-state-active.ui-tabs-active a:hover,
.tabs ul li.ui-state-active.ui-tabs-active span:hover
{
	color:#fff!important;
}
.tabs ul li .fa-times-circle{
position: absolute;
top: 10px;
right:18px;
}

  default.js

$(function(){
			var tabs = $( "#tabs3" ).tabs();
					   var tabTemplate = "<li><a href='#{href}'>#{label}</a> <span class='fa fa-times-circle'></span></li>";
				$('.menu li').click(function(){
					   //獲取tabs下a[href]的值
                        var id="#tabs-"+this.id;
                        //tabs初始化時就有一個li,所以要減1,添加時index會返回-1,再減1變為-2,可根據實際情況而定。這里實際上是通過Id定位#id所在li的位置,然后設置active
                        var index=$("#tabs3").find(id).index()-1;
                         $( "#tabs3" ).tabs('option','active',index);
                          if(index==-2){
                             addTab(this.innerText,this.id);
                          }
					    
				});
				
				function addTab(tabTitle,id) {
				        var label = tabTitle,
				            id = "tabs-" + id,
				            li = $( tabTemplate.replace( /#\{href\}/g, "#" + id ).replace( /#\{label\}/g, label ) );
				           var tabContentHtml = $("."+id).html();
				            var existing=tabs.find("[id='"+id+"']");
				            if(existing.length==0){
				            	 tabs.find( ".ui-tabs-nav" ).append( li );
						        tabs.append( "<div id='" + id + "'><p>" + tabContentHtml + "</p></div>" );
						        tabs.tabs( "refresh" );
				            }
				            
				          var index=tabs.find('.ui-tabs-nav li').index(existing);
                          //添加時總是返回-1
				          tabs.tabs('option','active',index);
				      
				  		  }
						// close icon: removing the tab on click
					    $( "#tabs3" ).on( "click",'span.fa-times-circle', function() {
					        var panelId = $( this ).closest( "li" ).remove().attr( "aria-controls" );
					        $( "#" + panelId ).remove();
					        tabs.tabs( "refresh" );
					    });
			
		})

  3、html片段

<h5>動態標簽頁</h5>
	<ul class="menu">
		<li id="menu1">
			<a href="#" >菜單1</a>
		</li>
		<li id="menu2">
			<a href="#">菜單2</a>
		</li>
		<li id="menu3">
			<a href="#">菜單3</a>
		</li>
	</ul>
	<div id="tabs3" class="tabs">
		<ul>
			<li>
				<a href="#tabs-4">主頁xxxxx</a>
			</li>
			
		</ul>
		<div id="tabs-4">主頁內容</div>
		
	</div>
	<div id="tab_content" style="display: none;">
		<div class="tabs-menu1">111</div>
		<div class="tabs-menu2">222</div>
		<div class="tabs-menu3">333</div>
	</div>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM