Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery哈希导航_Jquery_Hash - Fatal编程技术网

Jquery哈希导航

Jquery哈希导航,jquery,hash,Jquery,Hash,我有一个简单的javascript函数来获取散列变量: $(document).ready(function(){ $("a").click(function(){ nav_anchor() }); function nav_anchor() { var aurl = location.hash; aurl = aurl.split('#'); if (aurl[1]) { alert(aurl[1]); }

我有一个简单的javascript函数来获取散列变量:

$(document).ready(function(){
    $("a").click(function(){
        nav_anchor()
    });
    function nav_anchor() {
        var aurl = location.hash;
        aurl = aurl.split('#');
        if (aurl[1]) { alert(aurl[1]); }
        else { alert("Empty");  }
    }
}); 

但是如果我点击链接,我会收到上一个var

例如:


如果我的第一次点击是
11111
我会收到消息
Empty
,如果我的第二次点击是
2222222
我会收到
a=1&aa=10
,这是因为点击事件是在将哈希片段附加到URL之前触发的。不是从URL获取哈希,而是从链接获取:

$("a").click(function(){
    nav_anchor(this)
});

function nav_anchor(el) {
    var aurl = el.href;
    aurl = aurl.split('#');
    if (aurl[1]) { alert(aurl[1]); }
    else { alert("Empty");  }
}
如果您想在页面加载时获取变量,那么您需要使用
location.hash
从URL读取变量


似乎location.hash是在您调用
nav_anchor()
后应用的。无需发送$(此)…这就足够了。把它放在dom元素上。看起来导航锚函数可以在任何地方定义。没有必要将其保持在$.ready call内。
$(document).ready(function(){
    $("a").click(function(){
        nav_anchor(this);
    });
    function nav_anchor(o) {
        var aurl = o.hash;
        aurl = aurl.split('#');
        if (aurl[1].length>0) { alert(aurl[1]); }
        else { alert("Empty");  }
    }
});