附加jquery中的参数为哈希标识

时间:2015-07-15 15:20:08

标签: jquery

我有一个问题,当您使用自己的ID发送链接时,jquery hash显然可以正常工作。

如果您添加额外的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>

1 个答案:

答案 0 :(得分:0)

您将URL参数与命名锚点混淆。

您的命名主播是#menu-1 - 您还没有真正创建过网址参数。

您应该使用:

http://fiddle.jshell.net/ecp15eks/1/show/light/?utm=menu-1#menu-1

请注意,命名锚点应该是URL的最后一部分,并且URL参数需要在它之前。

在上面的代码中,我添加了网址参数utm=menu-1

然后,您可以使用&符附加额外的参数。 E.g:

http://fiddle.jshell.net/ecp15eks/1/show/light/?utm=menu-1&utn=menu-2#menu-1