我的页面上有几个标签。当我单击选项卡时,我会在该选项卡中显示一些附加了div的图表。当我单击选项卡时,我需要先刷新页面,然后执行将在选项卡下加载的脚本。例如,我有这段脚本:
$("a[href=#tab22]").click(function() {
$.ajaxSetup({ cache: false });
load_chart1();
load_chart2();
});
如果我插入此行,
location.reload();
右边是load_chart1()函数调用,默认页面加载,我看不到看tab22的内容,如chart1和chart2。
有一种简单的方法吗?
当我点击tab22时,整个页面应该刷新,tab22下的函数应该执行吗?
答案 0 :(得分:0)
如果您不打算通过AJAX刷新数据,则必须更新URL的哈希值,并在页面加载时检查其值。
例如,在您的文档加载处理程序中:
var hash = window.location.hash,
curtab;
console.log(hash);
switch(hash) {
case "tab-1":
curtab = document.getElementById('tab-1');
break;
case "tab-2":
curtab = document.getElementById('tab-2');
break;
case "tab-3":
curtab = document.getElementById('tab-3');
break;
case "tab-4":
curtab = document.getElementById('tab-4');
break;
default:
curtab = document.getElementById('tab-1');
break;
}
curtab.style.display = 'block';
curtab.innerHTML = "pasted from js";
$('a').on('click', function(e) {
e.preventDefault();
window.location.hash = $(this).attr('href');
window.location.reload();
});