我正在使用这个
$(window).bind('hashchange', gotohash);
为我的应用添加深层链接。
<a>
我的问题是,当我单击with时它也会触发,href=#whatever
我只想在用户使用浏览器的后退和前进按钮或直接转到其中包含哈希的 url 时使用它。
我正在考虑hashChangeEnabled=true/false
然后在每次点击时将其关闭
但是有没有更简单的方法来检测它是否是由点击引起的?
最佳做法是什么?
我的解决方案
var disableHashChange = false;
$(window).bind('hashchange', function(){
if(!disableHashChange ){
gotohash();
}
disableHashChange = false;
});
$('.link').click(function(){
disableHashChange = true;
}
伊姆斯基的回答
var lastLinkEvent;
$(window).bind('hashchange', function(){
if(lastLinkEvent != window.location.hash){
gotohash();
lastLinkEvent = "";
}
});
$('.link').click(function(){
lastLinkEvent = $(this).attr('href');;
}
谢谢