jq动态插入导航栏切换实现

187 阅读1分钟

效果图

代码实现



const providerDiv = $(`<div></div>`)

const newTab = $(`<ul class="nav nav-tabs"></ul>`)
const tabContent=$(`<div class="tab-content" style="padding-top:20px"></div>`);


let newli1 = $(`<li class="active"><a class="aclick" href="#a" style="padding: 6px;10px" data-toggle="tab">标题一</a></li>`)
let contentTable1 = $(`<div class="tab-pane fade in active" id="a"></div>`);

let newli2 = $(`<li><a class="aclick" href="#b" style="padding: 6px;10px" data-toggle="tab">标题儿</a></li>`)
let contentTable2 =$(`<div class="tab-pane fade in" id="b"></div>`);

//此处是确保切换一定会触发,如果点击后,active属性未绑定class,也会在此处代码中绑定
newli1.find('a.aclick').on('click',function(){
  	var contentdom = $(this).parents('div.form-control').find(`div.tab-pane`)
   	if(contentdom.length>1){
        for(let j=0;j<contentdom.length;j++){
          //判断当前这个元素属性中是否包含active
          let flag = contentdom[j].className.indexOf('active') != -1
          if(j==0 && !flag){
              $(contentdom[j]).addClass('active')
          }else if(j!=0 && flag){
              $(contentdom[j]).removeClass('active')
          }
      }
  }
})
newli2.find('a.aclick').on('click',function(){
  	var contentdom = $(this).parents('div.form-control').find(`div.tab-pane`)
   	if(contentdom.length>1){
        for(let j=0;j<contentdom.length;j++){
          //判断当前这个元素属性中是否包含active
          let flag = contentdom[j].className.indexOf('active') != -1
          if(j==1 && !flag){
              $(contentdom[j]).addClass('active')
          }else if(j!=1 && flag){
              $(contentdom[j]).removeClass('active')
          }
      }
  }
})

contentTable1.append($(`<button>0</button>`));
contentTable2.append($(`<button>1</button>`));

newTab.append(newli1)
newTab.append(newli2)

tabContent.append(contentTable1);
tabContent.append(contentTable2);

//最外层的div插入
providerDiv.append(newTab);  
providerDiv.append(tabContent);