在做PHP项目的同时,发现之前的JQuery <a>
标签跳转不了
用FIreFox用F12调试的时候又能正常跳转,只是要等一下,
深层的原因应该是JS和HTML层面的问题
先挖一个坑,以后弄清楚了这个问题再回来修改,
本来都打算直接用<a>
标签直接跳转了
后面不甘心又搜了一下
我用
<a id="company_logo" href="">芯智慧</a>
$("#company_logo").click(function () {
$(this).attr("href", "/hrms/main.php");
});
跳转不了,后面发现
<a id="company_logo" href="#">芯智慧</a>
href里面填#
就能正常跳转
具体可以参考这篇文章:
解决window.location.href不跳转,无反应,不执行的问题
上面文章说,
1.IE6 浏览器
2.事件绑定在a 标签且链接为空或为“javascript:;”或为“javascript:void(0);”
就会出现这个问题
解决的办法:
在onclick事件中加return false来阻止冒泡:
<a href="javascript:void(0);" onclick="modify();return false;">修改</a>
<a href="javascript:modify();">修改</a>
这里的modify()
应该对应js里面的函数,意思就是让href
对应js中的函数,不让其为空或者void(0)
另外两个解决办法:
1.在onclick事件中加return false来阻止冒泡:
$(“a”).click(function(){
window.location.href = “xxx.html”;
reutrn false;
})
2.延迟100毫秒:
$(“a”).click(function(){
setTimeout(function(){
window.location.href = “xxx.html”;
},100);
})
PS:经常我今天试了一天不成功,然后过一天又可以了,玄学BUG,给我的教训就是:有时候遇到解决不了的可以先放一放,潜意识可以帮你完成