<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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gcc命令和make命令[通俗易懂]

    gcc命令和make命令[通俗易懂]针对gcc,新建一个c语言文件:3.常用的有两个命令:-o将main.c预处理、编译、汇编并链接形成可执行文件main。-o选项用来指定输出文件的文件名。-S把.c文件编译成汇编文件.s查看汇编文件:其他还有把.s文件输出为.o文件的命令-c把.o文件链接为可执行文件的命令也是-o…

    2022年10月11日
    5
  • 编程实现盗版QQ「建议收藏」

    编程实现盗版QQ「建议收藏」源码下载(附件1 )一、思路分析  (一) 数据包的角度 (二) 钩子角度 1. 钩子简介 2. 程序流程 ;二、 实现过程   (一) 定义宏   (二) 枚举进程找到QQ.exe   (三) 枚举所有窗口,找属于QQ.exe的窗口   (四) 获取用户名、密码、登陆按钮的句柄   (五) 创建钩子用的DLL   (六) 安装钩子  一直以来我对盗QQ这种技术都比较的好奇,最近为了练

    2022年7月20日
    14
  • android 存储作假,对《纯活人伪造一个Android Killer或APK IDE或apktool反编译失败》的一点讨论…

    android 存储作假,对《纯活人伪造一个Android Killer或APK IDE或apktool反编译失败》的一点讨论…法王遇到的问题平时也遇到过 作为小白 也想参与讨论一下心得 奈何不知道怎么在回帖的时候插入图片 所以另起一个帖子 遇到的这个问题 个人觉得其实是反编译软件对多 dex 的 app 支持的问题 具体问题是插件本身不支持 还是插件已经支持了 但软件本身没有更新不支持 因为知识储备不够 无法得出结论 一 测试 androidkille 反编译结果 1 jpg 88 67KB 下载次数 0 2018 1

    2025年10月15日
    4
  • C语言实现电脑关机程序

    C语言实现电脑关机程序这个是我在网上搜索到的资料,其实也是很简单的。想使用ESP8266完成这样一个操作——远程关闭电脑,达到人在别的任何地方都可以操作我们的电脑。这个虽然已经不是羡慕新奇的事,实现的方法也撑出不穷,但我们学习ESP8266,也不失是一种体验的过程。对于初学者来说也是一种很有成就感的体验。因此,想完成远程关机,就需要理解怎么实现关机的命令及程序,我们使用C语言来完成。串口助手也可以实…

    2022年7月22日
    17
  • Iterative Soft Thresholding和Iterative Shrinkage/Thresholding的区别「建议收藏」

    Iterative Soft Thresholding和Iterative Shrinkage/Thresholding的区别「建议收藏」版权声明:本文为博主原创文章,遵循CC4.0by-sa版权协议,转载请附上原文出处链接和本声明。…

    2022年6月6日
    30
  • ajax 一个完整的ajax请求

    ajax 一个完整的ajax请求varrequest;if(window.XMLHttpRequest){request=newXMLHttpRequest();//IE7+,…}else{request=newActiveXObject("Microsoft.XMLHTTP");//IE6,IE5用XHR发送请求:open(method,url,async)调用XHR对象,async表示同步还是异步,默…

    2022年10月14日
    4

发表回复

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

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