当您用自己的ID发送链接时,jquery散列显然运行得很好。
如果添加额外的parámentros (例如url.com/#menu-1&utm=menu ),就会出现问题,但如果我只将id放在url.com/#menu-1中,则会出现问题。
会有一个可能的解决方案吗?
WORKS:
http://fiddle.jshell.net/ecp15eks/1/show/light/#menu-1
http://fiddle.jshell.net/ecp15eks/1/show/light/#menu-2
http://fiddle.jshell.net/ecp15eks/1/show/light/#menu-3它不工作:
http://fiddle.jshell.net/ecp15eks/1/show/light/#menu-1&utm=menu-1
http://fiddle.jshell.net/ecp15eks/1/show/light/#menu-2&utm=menu-2
http://fiddle.jshell.net/ecp15eks/1/show/light/#menu-3&utm=menu-3示例JSFIDDLE:http://jsfiddle.net/ecp15eks/1/
JS:
$(".tabs-menu a").click(function (event) {
event.preventDefault();
$(this).parent().addClass("current");
$(this).parent().siblings().removeClass("current");
var tab = $(this).attr("href");
$(".tab-content").not(tab).css("display", "none");
$(tab).fadeIn();
});
var hash = window.location.hash;
if (hash != "") {
$('.tabs-menu li a[href="' + hash + '"]').trigger("click");
}HTML:
<div id="menu">
<ul class="tabs-menu">
<li><a href="#menu-1">Menu 1</a></li>
<li><a href="#menu-2">Menu 2</a></li>
<li><a href="#menu-3">Menu 3</a></li>
</ul>
</div>
<div id="content">
<div id="menu-1" class="tab-content">
<h1>Menu Content 1</h1>
</div>
<div id="menu-2" class="tab-content">
<h1>Menu Content 2</h1>
</div>
<div id="menu-3" class="tab-content">
<h1>Menu Content 3</h1>
</div>
</div>发布于 2015-07-15 15:34:36
您将URL参数与命名锚混淆。
您的命名锚是#menu-1--您还没有真正创建一个URL参数。
你应该使用:
http://fiddle.jshell.net/ecp15eks/1/show/light/?utm=menu-1#menu-1请注意,命名锚应该是URL的最后一部分,URL参数需要放在URL之前。
在上面的代码中,我附加了URL参数utm=menu-1。
然后,您可以在末尾添加附加参数。例如:
http://fiddle.jshell.net/ecp15eks/1/show/light/?utm=menu-1&utn=menu-2#menu-1发布于 2015-07-15 16:01:29
你应该使用:
hash = hash.split(/\?|&/);
//Checks for '? or &' on hash and splits there
if (hash[0] != "") {
//hash[0] == first value of hash array
$('.tabs-menu li a[href="' + hash[0] + '"]').trigger("click");
}JS Fiddle
https://stackoverflow.com/questions/31434473
复制相似问题