Jquery哈希导航
我有一个简单的javascript函数来获取散列变量: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]); }
$(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"); }
}
});