【发布时间】:2017-04-17 14:16:12
【问题描述】:
在 html 中创建选项卡时,我可以将巴黎选项卡设置为活动(在 html 中使用“style="display: block;" 硬编码)。因此,当页面加载时,活动选项卡(巴黎)将显示。
问题
当我点击不同的标签(伦敦)并点击刷新时,它再次显示巴黎。如何点击刷新并显示当前处于活动状态的选项卡的信息?而不是让我回到定义的选项卡。也许 javascript 或 jquery 可以解决我的问题?
<!DOCTYPE html>
<html>
<head>
<div class="tab">
<button class="tablinks" onclick="openCity(event, 'London')">London</button>
<button class="tablinks" onclick="openCity(event, 'Paris')">Paris</button>
<button class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</button>
</div>
<div id="London" class="tabcontent">
<h3>London</h3>
<p>London is the capital city of England.</p>
</div>
<div id="Paris" class="tabcontent" style="display: block;>
<h3>Paris</h3>
<p>Paris is the capital of France.</p>
</div>
<div id="Tokyo" class="tabcontent">
<h3>Tokyo</h3>
<p>Tokyo is the capital of Japan.</p>
</div>
<script>
function openCity(evt, cityName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(cityName).style.display = "block";
evt.currentTarget.className += " active";
}
</script>
</body>
</html>
示例图片
目前在伦敦,如果我点击刷新,它应该会显示伦敦的详细信息。如果是巴黎或东京,也应该可以。
【问题讨论】:
-
在 url 中传递选项卡名称作为查询参数
-
将其保存到 cookie 中,然后在打开页面时读取 cookie,如果 cookie 存在则读取并选择该选项卡。
-
嘿,迈克,刚刚修改了您创建的 plunker 以使用 cookie 来存储和读回该 cookie,以便在页面加载时选择最后选择的选项卡。让我知道这是否是你所追求的。
标签: javascript jquery html