<a href="

<a href="

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  前阵子在一个移动项目中,通过 <a href = “#” >  的方式 绑定click 事件来提交一个表单,由于表单信息比较敏感,于是采用的post 同步提交的方式,原本到也没有什么。后来万恶的PM说 “你这个按钮呀,要固定在底部比较好” ,于是乎就通过 position:fixed 固定到底部了。那么,问题来了 , 在ios 下,虚拟键盘是浮在页面上层的,导致的结果是当键盘收起后,浮在最底部的按钮不在最底下,而跑到中间来了,(极端条件下还可能挡住输入框导致无法输入),并且随着屏幕的滚动而滚动,,(表现类似于absolute) ,,高大上的苹果也是真心坑了一回。

  怎么办呢? 两种方案,一滚动时动态计算位置,实时监控位置必定是要消耗性能的,二是由于无法监控到虚拟键盘打开或者关闭,所以只能通过对表单元素绑定focus和blur事件来改变按钮position来达到想要的效果。于是balabala又搞完了。

  搞完后就开始测试,然后有发现当有input元素处于focus状态时,点击提交按钮,无效!!!我再点,好了。。。

  原因是因为blur事件会阻止click事件的执行。。。

    好,我继续改。

  blur事件会阻止click事件的执行,但是不会阻止touch事件,于是想起把click改成tap吧。还真行。不用再点击两次了。

  大功告成,我得意的笑,我真聪明。

  balabala 就上线了。

  一上线发现提交不了了。。。有一定概率出现请求被canceled 。。。

             <a href="<a href=&quo_source title

各种google没找出原因,,问题出在哪里?click是没有问题,换成tap便有问题了,于是乎查了一下 touch event 的执行顺序,大致是这样

  <a href="<a href=&quo_source title

于是我测试 mouseup 是好的,touchend也是有问题的,,tap也是有问题的,,而当我用tap事件,handler处理的时候延迟100ms再$(‘*Form’).submit() 又可以正常提交了。原来是submit执行的时机问题。

继续各种debug 抓虫子,,历史遗留的坑啊,,

最终到 <a href = “#” > 了,,当按钮点击事件执行,在请求hash前执行submit , 请求还没返回,由于改变了hash,同步的submit被cancel了,,,而由于各种原因submit执行前,hash已经改变的话就可以顺利提交了,,

 

于是乎,把 <a href = “#” >  改成 <a href = “javascript:void(0)” > 终于万事大吉了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166953.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月6日 上午6:46
下一篇 2022年8月6日 上午6:46


相关推荐

  • 常用软件写网页html,新手用什么软件写html网页比较靠谱

    常用软件写网页html,新手用什么软件写html网页比较靠谱这里所说的网页是指包含javascript代码在内的html静态网页(在做动态网站时称之为模版页)。我接触页面制作的时候连基本的css语法都不会,之前也很少用table的方式写,所以直接从div+css学起,开始是看别人写好的网页,然后分析他们的每一行代码,后来发现这样学习不太适合我,于是就把一个结构不太复杂的网页截图,然后照着图片来写html结构的网页。开始的时候连基本的margin、paddi…

    2022年5月30日
    42
  • 提高效率:公司内外网同时使用

    提高效率:公司内外网同时使用

    2021年8月20日
    50
  • java switch条件_Java switch 条件语句用法详解[通俗易懂]

    java switch条件_Java switch 条件语句用法详解[通俗易懂]首页>基础教程>循环条件语句>条件语句switchJavaswitch条件语句用法详解switchcase语句在很多编程语言中的功能都是等于条件判断,java中为多路分支选择流程专门提供了switch语句,switch语句根据多个表达式的值,选择运行多个操作中的一个。当需要对选项进行等值判断时,使用switch语句更加简洁明了。switch的case语句可以处…

    2022年7月14日
    53
  • Pycharm连接Mysql失败的简单解决

    Pycharm连接Mysql失败的简单解决以前都是 Pycharm 中连接和写入数据库 在 MysqlWorkben 里面查看数据是否写入成功 倒也没觉得有什么问题 今天突然看到 在 Pycharm 中还可以直接查看 Mysql 的数据 类似于这样 Pycharm 连接 Mysql 的教程 请查看 https www cnblogs com QiKa p 14225469 html 按照教程来 没想到最后测试连接 竟然失败了 我很确信自己的 MYSQL 处于正常状态 相关的服务也是开启了的 user 和密码都是正确的 正常打开 MysqlWorkbe

    2026年3月27日
    2
  • 豆包ai怎么生成图片_豆包ai绘画关键词与咒语使用方法【新手教程】

    豆包ai怎么生成图片_豆包ai绘画关键词与咒语使用方法【新手教程】

    2026年3月12日
    2
  • fvwm 4_FV7144TFATG

    fvwm 4_FV7144TFATG31.2.MiscellaneousCommands31.2.1.BugOptsBugOpts[option[bool]],…Thiscommandcontrolsseveralworkaroundsforbugsinthirdpartyprograms.Theindividualoptionsareseparated

    2022年10月3日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号