2017-02-22 75 views
0

У меня есть пример HTML, как это:Как я могу запускать динамическую вкладку всякий раз, когда я нажимаю на статическую вкладку?

<!-- Nav tabs --> 
<ul class="nav nav-tabs" role="tablist" id="tab1"> 
    <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li> 
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li> 
    <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li> 
    <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li> 
</ul> 

<ul class="nav nav-tabs" role="tablist" id="tab2"> 
</ul> 

<!-- Tab panes --> 
<div class="tab-content"> 
    <div role="tabpanel" class="tab-pane active" id="home">Home</div> 
    <div role="tabpanel" class="tab-pane" id="profile">Profile</div> 
    <div role="tabpanel" class="tab-pane" id="messages">Messages</div> 
    <div role="tabpanel" class="tab-pane" id="settings">Settings</div> 
</div> 

И в JQuery:

$ (функция() {

$("#tab2").html($("#tab1").html()); 

//event click for tab2 
$("#tab2 li a[data-toggle='tab']").on("click",function(){ 
     $("#tab1 a[href="+$(this).attr("href")+"]").trigger("click"); 
}); 

//event click for tab1 
$("#tab1 li a[data-toggle='tab']").on("click",function(){ 
     $("#tab2 a[href="+$(this).attr("href")+"]").trigger("click"); 
}); 

});

Tab1 - статическая вкладка, tab2 - динамические элементы (скопируйте html из tab1).

Все, что я хочу сделать, - это когда всякий раз, когда нажата кнопка tab1, нажмите tab2 и нажмите и наоборот. Но мне не повезло. Кто-нибудь может мне помочь? благодаря

https://jsfiddle.net/qq6tyqo9/1/

+0

Вы можете подготовить скрипку за то же самое? И еще одна вещь, в чем нуждаются такие вещи? Если две вкладки могут оставаться открытыми, чем та, у которой есть вкладки? – Aatman

+0

выглядит как загрузочный лоток, вы должны удалить один из тегов и заменить его загрузкой, чтобы привлечь внимание людей. –

+0

@ GHOST93 Я попытался сделать очень простой пример. Для моей проблемы. На самом деле я делаю отзывчивые вкладки, которые конвертируются в раскрывающийся список, мне нужны две вкладки, синхронизированные для окна браузера с размером окна. –

ответ

0

Пусть сделать трюк с классом

$("#tab2").html($("#tab1").html()); 


$("#tab2 li a[data-toggle='tab']").on("click",function(){ 
    $("#tab1 li").removeClass("active"); 
    $("#tab1 a[href="+$(this).attr("href")+"]").parent().addClass("active"); 
}); 

$("#tab1 li a[data-toggle='tab']").on("click",function(){ 
    $("#tab2 li").removeClass("active"); 
    $("#tab2 a[href="+$(this).attr("href")+"]").parent().addClass("active"); 
}); 
+0

Спасибо, брат. Это потрясающие трюки :)) –

0

попробовать как this-

var a = '1';var b ='1'; 
    $("#tab2").on("click","li a[data-toggle='tab']",function(){ 
    console.log(b); 
    if(b==1){a=2; 
      $("#tab1 a[href="+$(this).attr("href")+"]").click();}else{a=1;b=1;} 
    }); 

    //event click for tab1 
    $("#tab1").on("click","li a[data-toggle='tab']",function(){ 
    console.log(a); 
    if(a==1){ 
    b=2; 
      $("#tab2 a[href="+$(this).attr("href")+"]").click(); 
    }else{b=1;a=1;} 
    });