location.href不跳转问题
今天一位同事碰到一个问题,用JS设置了location.href就是不跳转的问题。代码如下:
$(’#gofriendtab’).on(‘click’, function() {
location.href = “XXXXX”;
})
测试运行了一下,发现确实执行了这个代码,但是就是不跳转,语法问题先排除。
- 控制台调试
首先,我在控制台输入location.href发现是可以立马跳转的。 - setTimeout测试
既然控制台OK,那就使用setTimeout试一下吧。
setTimeout($(’#gofriendtab’).on(‘click’, function() {
location.href = “XXXXX”;
}),1);
发现也是OK的。
- 阻止冒泡试一下
既然上面两种都是OK的。就怀疑是绑定事件重复,导致其他原因。于是我就阻止事件冒泡的。
return false;
发现是OK的。
然后看下代码是否有其他事件,发现没有。。。
于是终于看到了这个:
发现href写错了,于是更正过来,<a href="javascrpt:;" class="gwq_follow_fixbtn fixed" ptag="7322.1.4" id="gofriendtab">马上看他 们的动态</a>
发现是OK的。然后改变href,#abc、javascript:void(0);javascript:alert(2);发现都是可以跳转的。但是"abcd:"等都是不能跳转的。<a href="javascript:;" class="gwq_follow_fixbtn fixed" ptag="7322.1.4" id="gofriendtab">马上看他们的动态</a>
<a href="#abc" class="gwq_follow_fixbtn fixed" ptag="7322.1.4" id="gofriendtab">马上看他们的动态</a>
```
得出结论:点击便签元素,执行JS的事件,然后冒泡,执行href,结果报错了。所以跳转也不能执行了。。。