首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数添加到散列id的附加jquery中。

参数添加到散列id的附加jquery中。
EN

Stack Overflow用户
提问于 2015-07-15 15:20:07
回答 2查看 50关注 0票数 0

当您用自己的ID发送链接时,jquery散列显然运行得很好。

如果添加额外的parámentros (例如url.com/#menu-1&utm=menu ),就会出现问题,但如果我只将id放在url.com/#menu-1中,则会出现问题。

会有一个可能的解决方案吗?

WORKS:

代码语言:javascript
复制
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

它不工作:

代码语言:javascript
复制
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:

代码语言:javascript
复制
$(".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:

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2015-07-15 15:34:36

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

您的命名锚是#menu-1--您还没有真正创建一个URL参数。

你应该使用:

代码语言:javascript
复制
http://fiddle.jshell.net/ecp15eks/1/show/light/?utm=menu-1#menu-1

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

在上面的代码中,我附加了URL参数utm=menu-1

然后,您可以在末尾添加附加参数。例如:

代码语言:javascript
复制
http://fiddle.jshell.net/ecp15eks/1/show/light/?utm=menu-1&utn=menu-2#menu-1
票数 0
EN

Stack Overflow用户

发布于 2015-07-15 16:01:29

你应该使用:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31434473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档