移动开发中需要注意的问题

背景

  • 做用于在移动app中的h5页面时,需要从一个页面跳到另一个页面。同事告知移动端使用<a>标签会有一些坑,可能会导致页面多次跳转的问题,尽量避免使用<a>标签
  • 测试了一下,ios单独使用click事件写的跳转或者<a>标签都可以正常跳转,使用<a>标签跳出去再回到当前页面再使用click事件写的跳转就会多打开一个页面,每多跳转出去一次就多打开一个页面==
  • click事件里调用了ios的方法打开页面
1
2
3
4
5
6
7
<div class="btn"></div>
<a href="http://"></a>
<script>
$('.btn').on('click', function(){

});
</script>

定位问题&&查阅资料

定义了一个变量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