jQuery를 사용하여 particuler 링크를 클릭하면 부트 스트랩 탐색 탭의 특정 탭을 여는 방법은 무엇입니까?
저는 jquery 및 부트 스트랩을 처음 사용하므로 내 실수를 고려하십시오. 로그인 및 등록을위한 부트 스트랩 모달을 만들었습니다. 여기에는 로그인 및 등록이라는 두 개의 탐색 탭이 포함되어 있습니다. 동일한 모달 창을 팝업하지만 모달 창 안에 다른 탭을 표시하는 두 개의 버튼이 있습니다. 각 탭에는 여러 입력이있는 양식이 있습니다. 내 문제는 '로그인'버튼을 클릭하면 모달에서 로그인 탭이 열리고 내 페이지에서 '등록'버튼을 클릭하면 등록 탭이 열린 상태에서 모달이 팝업되는 것입니다.
모달이 열리는 2 개의 링크는 다음과 같습니다.
<div class="header-login-li" style="background-color:gray;float:left;width:100px;height:60px;">
<a data-toggle="modal" href="#regestration" class="header-register-a" >
<big>
<font color="white" class="header-register-font"><center style="margin-top:20px;">Login <i class="icon-chevron-down" style="font-size:20px"></i></center></font>
</big></a></div>
<div class="header-register-li" style="background-color:green;float:right;margin-right:-15px;width:130px;height:60px;">
<a data-toggle="modal" href="#regestration" class="header-register-a" >
<big>
<font color="white" class="header-register-font"><center style="margin-top:20px;">Register</center></font>
</big></a>
다음은 내 탭 코드와 그 내용입니다 (여기에서는 불필요한 코드를 피하고 있습니다).
<div class="tabbable" >
<ul class="nav nav-tabs" ><!--tabs-->
<li class="active" style="position:absolute;margin-left:0px;" id="logintab">
<a href="#pane_login" data-toggle="tab">Login</a></li>
<li style="margin-left:70px;" id="reg_tab" ><a href="#pane_reg" data-toggle="tab">Registration</a></li>
</ul>
<div class="tab-content"><!--login tab content-->
<div id="pane_login" class="tab-pane active">
<form id="login-form" target="login-signup-iframe" method="post" action="#" name="login-form">
</form>
</div><!--/pane_login-->
<div id="pane_reg" class="tab-pane"><!--registration tab content-->
<form id="regestration-form" target="login-signup-iframe" method="post" action="#" name="regestration-form">
</form>
</div>
</div><!-- /.tab-content -->
</div><!-- /.tabbable -->
나는 이것이 jquery를 통해 쉽게 할 수 있다고 생각하지만 정확히 어떻게 해야할지 모르겠습니다. 그래서, 누구든지 내 문제를 해결하도록 도울 수 있습니다. 미리 감사드립니다.
.nav-tabs에서 선택기를 적용하는 것이 작동하는 것 같습니다.
HTML 은
<ul class="nav nav-tabs">
<li><a href="#aaa" data-toggle="tab">AAA</a></li>
<li><a href="#bbb" data-toggle="tab">BBB</a></li>
<li><a href="#ccc" data-toggle="tab">CCC</a></li>
</ul>
<div class="tab-content" id="tabs">
<div class="tab-pane" id="aaa">...Content...</div>
<div class="tab-pane" id="bbb">...Content...</div>
<div class="tab-pane" id="ccc">...Content...</div>
</div>
스크립트 는
$(document).ready(function(){
activaTab('aaa');
});
function activaTab(tab){
$('.nav-tabs a[href="#' + tab + '"]').tab('show');
};
HTML :
<a href="PageName.php#tabID">link to other page tab</a>
자바 스크립트 :
window.onload = function(){
var url = document.location.toString();
if (url.match('#')) {
$('.nav-tabs a[href="#' + url.split('#')[1] + '"]').tab('show');
}
//Change hash for page-reload
$('.nav-tabs a[href="#' + url.split('#')[1] + '"]').on('shown', function (e) {
window.location.hash = e.target.hash;
});
}
탭 ID를 통해서도 액세스 할 수 있지만 해당 ID는 동일한 페이지에 대해 고유합니다. 다음은 동일한 예입니다.
$('#product_detail').tab('show');
위의 예 #product_details
에서 nav
tab
ID는
안녕하세요이 사람을보십시오!
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
// save current clicked tab in local storage
localStorage.setItem('lastActiveTab', $(this).attr('href'));
});
//get last active tab from local storage
var lastTab = localStorage.getItem('lastActiveTab');
alert(lastTab +"tab was last active")
if (lastTab) {
$('[href="' + lastTab + '"]').tab('show');
}
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<div class="container">
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<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>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home">...</div>
<div role="tabpanel" class="tab-pane" id="profile">...</div>
<div role="tabpanel" class="tab-pane" id="messages">...</div>
<div role="tabpanel" class="tab-pane" id="settings">...</div>
</div>
</div>
</div>
위의 답변에 감사드립니다. 지금 작동하는 jQuery 코드는 다음과 같습니다.
$(".header-login-li").click(function(){
activaTab('pane_login');
});
$(".header-register-li").click(function(){
activaTab('pane_reg');
$("#reg_log_modal_header_text").css()
});
function activaTab(tab){
$('.nav-tabs a[href="#' + tab + '"]').tab('show');
};
function updateURL(url_params) {
if (history.pushState) {
var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + '?' + url_params;
window.history.replaceState({path:newurl},'',newurl);
}
}
function setActiveTab(tab) {
$('.nav-tabs li').removeClass('active');
$('.tab-content .tab-pane').removeClass('active');
$('a[href="#tab-' + tab + '"]').closest('li').addClass('active');
$('#tab-' + tab).addClass('active');
}
// Set active tab
$url_params = new URLSearchParams(window.location.search);
// Get active tab and remember it
$('a[data-toggle="tab"]')
.on('click', function() {
$href = $(this).attr('href')
$active_tab = $href.replace('#tab-', '');
$url_params.set('tab', $active_tab);
updateURL($url_params.toString());
});
if ($url_params.has('tab')) {
$tab = $url_params.get('tab');
$tab = '#tab-' + $tab;
$myTab = JSON.stringify($tab);
$thisTab = $('.nav-tabs a[href=' + $myTab +']');
$('.nav-tabs a[href=' + $myTab +']').tab('show');
}
내 사이트에서 사용한 php + css 솔루션을 제안해도됩니까? 간단하고 js 문제가 없습니다. :)
페이지 URL : <a href="page.php?tab=menu1">link to menu1</a>
<?
$tab = $_GET['tab'];
?>
<ul class="nav nav-tabs">
<li class="<? if ($tab=='menu1' OR $tab=='menu2')
{
echo "";
}
else {
echo "active";
}
?>"><a data-toggle="tab" href="#home">Prodotti</a></li>
<li class="<? if ($tab=='menu1')
{
echo "active";
}
?>"><a data-toggle="tab" href="#menu1">News</a></li>
<li class="<? if ($tab=='menu2')
{
echo "active";
}
?>"><a data-toggle="tab" href="#menu2">Gallery</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade <? if ($tab=='menu1' OR $tab=='menu2')
{
echo "";
}
else {
echo "in active";
}
?>
">
<h3>Prodotti</h3>
<p>Contenuto della pagina, zona prodotti</p>
</div>
<div id="menu1" class="tab-pane fade <? if ($tab=='menu1')
{
echo "in active";
}
?>">
<h3>News</h3>
<p>Qui ci saranno le news.</p>
</div>
<div id="menu2" class="tab-pane fade <? if ($tab=='menu2')
{
echo "in active";
}
?>">
<h3>Gallery</h3>
<p>Qui ci sarà la gallery</p>
</div>
</div>
내가 올바르게 이해했는지 확실하지 않지만 여기에 Bootstrap 탭 메뉴에서 링크 를 여는 데 사용하는 스 니펫이 있습니다 .
HTML
<ul class="nav nav-tabs">
<li class="active"><a href="#foo" data-toggle="tab">Foo</a></li>
<li><a href="#bar" data-toggle="tab">Bar</a></li>
<li><a href="baz.html" class="external">Baz</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="foo">Foo</div>
<div class="tab-pane" id="bar">Bar</div>
</div>
자바 스크립트
$('.nav a:not(".external")').click(function (e) {
e.preventDefault()
$(this).tab('show')
})
'developer tip' 카테고리의 다른 글
웹 배포 작업이 실패했습니다. (0) | 2020.11.23 |
---|---|
일치하는 와일드 카드는 엄격하지만 'context : component-scan'요소에 대한 선언을 찾을 수 없습니다. (0) | 2020.11.23 |
iOS9의 CLLocationManager에있는 allowsBackgroundLocationUpdates (0) | 2020.11.23 |
Android Studio에 잘못된 파일 내용이 표시됨 (0) | 2020.11.23 |
사용자가 사용자 컨트롤 Asp.net MVC에 로그인했는지 확인 (0) | 2020.11.23 |