我试图在页面刷新时保存为活动标签状态。目前,我有以下代码,但是,当我输出以控制ui-state-active时,它使我返回-1作为值。它似乎甚至没有注册我的click()函数,导致我的console.log函数永远不会输出。我相信我在这里做错了事。如何保存页面刷新后的活动标签javascript
<script language="javascript" type="text/javascript">
$(".tabs").tabs();
var tabIndex = parseInt(localStorage.getItem('activeTab')) + 1;
console.log("local storage value parseInt: " + tabIndex);
if(tabIndex != null){
console.log("I am in the if statement: " + localStorage.getItem('activeTab'));
$('.tabs > ul > li:nth-child('+ (tabIndex) +')').find('a').click();
}
$(document).on("click", ".tab-links a", function(e) {
$('.active').removeClass('active');
$(this).parent().addClass('active');
var curTab = $('.tab-links').find('.active')[0].id;
console.log("This is the currentTab value: " + curTab.replace (/[^\d.]/g, ''));
var curTabIndex = (curTab.replace (/[^\d.]/g, '') - 1);
localStorage.setItem('activeTab', curTabIndex);
});
</script>
<div class="tabs">
<ul class="tab-links">
<li id="t1"><a href="#tab1" class="tab1a">One</a></li>
<li id="t2"><a href="#tab2" class="tab2a">Two</a></li>
<li id="t3"><a href="#tab3" class="tab3a">Three</a></li>
<li id="t4"><a href="#tab4" class="tab4a">Four</a></li>
<li id="t5"><a href="#tab5" class="tab5a">Five</a></li>
<li id="t5"><a href="#tab6" class="tab6a">Six</a></li>
</ul>
<div class="tab-content">
<div id="tab1" class="tab active" >
<?php include("tab_1.html"); ?>
</div>
<div id="tab2" class="tab" >
<?php include("tab_2.html"); ?>
</div>
<div id="tab3" class="tab" >
<?php include("tab_3.html"); ?>
</div>
<div id="tab4" class="tab active">
<?php include("tab_4.html"); ?>
</div>
<div id="tab5" class="tab active">
<?php include("tab_5.html"); ?>
</div>
<div id="tab6" class="tab active">
<?php include("tab_6.html") ?>
</div>
</div>
</div>
由于某种原因,无论我做什么,它都不会触及click事件函数。它应该输出到控制台,当我点击右? – kkmoslehpour
您的元素是否动态创建?在这种情况下,您需要**提升范围**并利用[**活动委托**](https://learn.jquery.com/events/event-delegation/)。尝试使用'$(document).on(“click”,“.tab-links a”,function(e){})'而不是'$('.tab-links a')。click(function(e) {})'。 –
哦,很好,工作!非常感谢你:) – kkmoslehpour