jQuery将自定义标签移动到下一步



我有一些基本的html/css选项卡,我想通过单击每个选项卡的底部单击一个链接将选项卡移到下一步。

html

 <ul class="tabs">
   <li class="active">
      <a href="#">Explainer (2mins)</a>
      <div class="content">
         <div id="Video" class="tabcontent">
            <div class="coltab">
               content A
            </div>
            <h4>Next tab: View Some Sample Lessons</h4>
         </div>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Sample Lessons</a>
      <div class="content coltab">
         <div>
            Content B
         </div>
         <h4> Next tab: See the Your Offer. </h4>
      </div>
   </li>
</ul>

jQuery是

$(document).ready(function(){
    $(".tabs").after("<div class='tabContent'></div>");
    $(".tabs li>a").on("click", function(e){
        var $tab = $(this).parent();
        var tabIndex = $tab.index();
        $tab.parent("ul").find("li").removeClass("active");
        $tab.addClass("active");
        var tabContent = $tab.find(">div").clone(true);
        $(".tabContent").html(tabContent);
        e.preventDefault();
    });
});

现在,当我单击标签更改时,它对我来说很好。

实时演示

$(document).ready(function(){
	$(".tabs").after("<div class='tabContent'></div>");
	
	$(".tabs li>a").on("click", function(e){
		var $tab = $(this).parent();
		var tabIndex = $tab.index();
		
		$tab.parent("ul").find("li").removeClass("active");
		$tab.addClass("active");
		
		var tabContent = $tab.find(">div").clone(true);
		$(".tabContent").html(tabContent);
		e.preventDefault();
	});
	
});
.coltab{
	height: 51vh;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.tabs {
	margin: 0;
	padding: 0;
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
	overflow: hidden;
	display: table;
	border-collapse: collapse;
	border-spacing: 0;
	width: 100%;
}
 .tabs li {
	display: table-cell;
	margin: 0;
	padding: 0;
	list-style: none;
	border-right: 1px solid #000;
}
.tabs li>a {
	display: block;
	font-weight: bold;
	text-align: center;
	padding: 5px;
}
.tabs li>a:hover,.tabs li.active a {
	background-color: #D3D3D3;
}
.tabs li .content {
	display: none;
}
.tabContent {
	padding: 15px 15px 0px 15px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="tabs">
   <li class="active">
      <a href="#">Explainer (2mins)</a>
      <div class="content">
         <div id="Video" class="tabcontent">
            <div class="coltab">
               content A
            </div>
            <h4>Next tab: View Some Sample Lessons</h4>
         </div>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Sample Lessons</a>
      <div class="content coltab">
         <div>
            Content B
         </div>
         <h4> Next tab: See the Your Offer. </h4>
      </div>
   </li>
   <li>
      <a href="#">Special Offer</a>
      <div class="content">
         <div class="coltab">
            Content C
         </div>
         <h4>Next tab: To Register and Subscribe>>></h4>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Subscribe</a>
      <div class="content coltab">
        <div>
         Content D
      </div>
        <div>
      <h4>Next tab: To Request a callback</h4>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Request a Callback</a>
      <div class="content coltab">
         <div>
            Content E
         </div>
         <h4>Next tab: Reviews</h4>
      </div>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Reviews</a>
      <div class="content">
         <div>
            Content F
         </div>
         <h4>Back to first tab</h4>
      </div>
      </div>
      </div>
   </li>
</ul>

您可以添加此代码:

$("h4").click(function(){
  var activeTab = $("ul.tabs > li.active");
  var nextTab = (activeTab.is(':last-child') == true ? $("ul.tabs > li:first") : $("ul.tabs > li.active").next("li"));
  nextTab.find("a").trigger("click")
});

它将允许您单击h4 AKA接下来,然后移动到下一个内容

工作演示

$(document).ready(function(){
	$(".tabs").after("<div class='tabContent'></div>");
	
	$(".tabs li>a").on("click", function(e){
		var $tab = $(this).parent();
		var tabIndex = $tab.index();
		
		$tab.parent("ul").find("li").removeClass("active");
		$tab.addClass("active");
		
		var tabContent = $tab.find(">div").clone(true);
		$(".tabContent").html(tabContent);
		e.preventDefault();
	});
	
  $("h4").click(function(){
    var activeTab = $("ul.tabs > li.active");
    var nextTab = (activeTab.is(':last-child') == true ? $("ul.tabs > li:first") : $("ul.tabs > li.active").next("li"));
    nextTab.find("a").trigger("click")
  });
});
.coltab{
	height: 51vh;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.tabs {
	margin: 0;
	padding: 0;
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
	overflow: hidden;
	display: table;
	border-collapse: collapse;
	border-spacing: 0;
	width: 100%;
}
 .tabs li {
	display: table-cell;
	margin: 0;
	padding: 0;
	list-style: none;
	border-right: 1px solid #000;
}
.tabs li>a {
	display: block;
	font-weight: bold;
	text-align: center;
	padding: 5px;
}
.tabs li>a:hover,.tabs li.active a {
	background-color: #D3D3D3;
}
.tabs li .content {
	display: none;
}
.tabContent {
	padding: 15px 15px 0px 15px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="tabs">
   <li class="active">
      <a href="#">Explainer (2mins)</a>
      <div class="content">
         <div id="Video" class="tabcontent">
            <div class="coltab">
               content A
            </div>
            <h4>Next tab: View Some Sample Lessons</h4>
         </div>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Sample Lessons</a>
      <div class="content coltab">
         <div>
            Content B
         </div>
         <h4> Next tab: See the Your Offer. </h4>
      </div>
   </li>
   <li>
      <a href="#">Special Offer</a>
      <div class="content">
         <div class="coltab">
            Content C
         </div>
         <h4>Next tab: To Register and Subscribe>>></h4>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Subscribe</a>
      <div class="content coltab">
        <div>
         Content D
      </div>
        <div>
      <h4>Next tab: To Request a callback</h4>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Request a Callback</a>
      <div class="content coltab">
         <div>
            Content E
         </div>
         <h4>Next tab: Reviews</h4>
      </div>
      </div>
      </div>
   </li>
   <li>
      <a href="#">Reviews</a>
      <div class="content">
         <div>
            Content F
         </div>
         <h4>Back to first tab</h4>
      </div>
      </div>
      </div>
   </li>
</ul>

最新更新