背景
- 做用于在移动app中的h5页面时,需要从一个页面跳到另一个页面。同事告知移动端使用
<a>
标签会有一些坑,可能会导致页面多次跳转的问题,尽量避免使用<a>
标签 - 测试了一下,ios单独使用
click
事件写的跳转或者<a>
标签都可以正常跳转,使用<a>
标签跳出去再回到当前页面再使用click
事件写的跳转就会多打开一个页面,每多跳转出去一次就多打开一个页面== click
事件里调用了ios的方法打开页面
1 | <div class="btn"></div> |
定位问题&&查阅资料
定义了一个变量var num=0;
,每点击一次num++,ios在方法中打印后发现是多次触发了click事件,事件被累加绑定了。
累加绑定:在页面中为一个元素绑定事件,事件执行后页面未刷新且元素还在,然后你再次点击,元素又被绑定个一次点击事件,这样第二次点击就会执行两次,以此类推。
解决方法
解绑后再进行绑定1
2
3
4
5
6
7
8<div class="btn"></div>
<a href="http://"></a>
<script>
$('.btn').off('click');
$('.btn').on('click', function(){
});
</script>
参考:
1.click点击一次,执行多次的bug