每个选项卡的特定URL,无需在javascript中重新加载
我有一个标签系统,我想能够去和url打开一个确定的标签。如www.site.com/tab2优先用于搜索引擎优化或www.site.com/tab2 我尝试过window.location或window.history.pushstate等方法,但我不知道如何使它们发挥作用。 Javascript: HTML:每个选项卡的特定URL,无需在javascript中重新加载,javascript,jquery,html,Javascript,Jquery,Html,我有一个标签系统,我想能够去和url打开一个确定的标签。如www.site.com/tab2优先用于搜索引擎优化或www.site.com/tab2 我尝试过window.location或window.history.pushstate等方法,但我不知道如何使它们发挥作用。 Javascript: HTML: 阅读这篇文章,您应该能够理解: 您可以创建一个lil脚本,通过window.location.hash查看页面的哈希 因此,在文档就绪时,获取散列,然后模拟单击适当的选项卡。像这样的
阅读这篇文章,您应该能够理解:
您可以创建一个lil脚本,通过window.location.hash查看页面的哈希 因此,在文档就绪时,获取散列,然后模拟单击适当的选项卡。像这样的
var hash = window.location.hash;
var tab = parseInt(hash.replace('#',''), 10);
$tabsNavLis.eq(tab - 1).click();
但是,这只会像它那样工作,因为您的哈希表中有选项卡的索引。但是你可以看到,一旦你有了散列,你可以做什么。我希望这有帮助
编辑:
这就是它应该是什么样子…虽然我自己没有试过这个代码。如果你想让我再把它弄得乱七八糟的话,就把它放进垃圾桶里
(function($){
$(function() {
var $tabsNav = $('.tabs-nav'),
$tabsNavLis = $tabsNav.children('li'),
$tabContent = $('.tab-content');
$tabContent.hide();
$tabsNavLis.first().addClass('active').show();
$tabContent.first().show();
$tabsNavLis.on('click', function(e) {
var $this = $(this);
$tabsNavLis.removeClass('active');
$this.addClass('active');
$tabContent.hide();
});
var hash = window.location.hash;
var tab = parseInt(hash.replace('#', ''), 10);
$tabsNavLis.eq(tab - 1).click();
});
})(jQuery);
我只是在变量$tabsNav=$'.tabs nav'、$tabsNavLis=$tabsNav.children'li'、$tabContent=$'.tab content'之后添加它?在单击处理程序之后添加它。并确保这些代码都在文档就绪的$function{//your code here}中运行;,或者在html的底部,就在结束正文标记之前。是的,它运行在一个文档中,准备好了,所以它就像现在在我的帖子上编辑的一样?是否必须删除e.preventDefault?这似乎删除了与我的代码无关的tabWell的内容。你需要把这件事弄清楚,否则真的很难帮上忙。
var hash = window.location.hash;
var tab = parseInt(hash.replace('#',''), 10);
$tabsNavLis.eq(tab - 1).click();
(function($){
$(function() {
var $tabsNav = $('.tabs-nav'),
$tabsNavLis = $tabsNav.children('li'),
$tabContent = $('.tab-content');
$tabContent.hide();
$tabsNavLis.first().addClass('active').show();
$tabContent.first().show();
$tabsNavLis.on('click', function(e) {
var $this = $(this);
$tabsNavLis.removeClass('active');
$this.addClass('active');
$tabContent.hide();
});
var hash = window.location.hash;
var tab = parseInt(hash.replace('#', ''), 10);
$tabsNavLis.eq(tab - 1).click();
});
})(jQuery);