由<a href = "#" > 引发的思考

原文:由<a href = "#" > 引发的思考

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

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

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

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

    好,我继续改。

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

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

  balabala 就上线了。

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

             

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

  

于是我测试 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)" > 终于万事大吉了。

时间: 2024-10-27 20:19:35

由<a href = "#" > 引发的思考的相关文章

由百度此次疯狂“屠杀”引发的思考

自从6月22号至今,百度就没有安宁过.也许你与我有同样的感受,8月22日下午,百度官方站长论坛管理员公布,新的算法预计于23日更新.果不出所料,不到几个钟,该条帖子点击率超过5000.翌日,相信很多站长朋友并没有感觉到自己网站有变化,可能就因此松懈了.意料之外的是25日也就是周六,很明显的感觉到网站流量掉了很多,这时候笔者才觉得不妙,肯定有事情发生.于是习惯性的使用站长工具检测一下,想不到网站权重由2变为1.   今日上班检查网站情况,品牌词"东莞现代妇科医院"排名也掉了,其他关键词东

由IsPostBack引发的思考(续)

上篇文章中讲了关于Page类的IsPostBack属性的相关知识,并引发了思考.本文中,将借助实例,来帮助大家更好的理解WebForm中的这些知识,相信读者会有意外的收获. WebForm技术,看起来简单,做起来也看似很简单,但你真正深入去思考,去探索,会发现其非常非常的复杂. 好了,首先借助一个实例,来探索当发生"跨页投递"的这种情况时候,当前"响应页面"的IsPostBack和"请求页面"的IsPostBack值. 先建立两个新的aspx(W

一个社会化营销信徒的自白 微博引发的思考

中介交易 SEO诊断 淘宝客 云主机 技术大厅 拥抱社会化媒体营销时代,首先就要重视人的力量,一切回归到"人"的关系,无论这个"人"是你的消费者.员工还是合作伙伴.我们在谈论社会化营销时大讲要关系,要信任,无关系不传播,无关系不营销.可是什么是关系,如何建立关系维护关系,当我们企业还在以自我为中心,在社会化媒体上做着传统营销的工作,视用户的声音于不顾,高高在上,这样又如何赢得关系赢得社会化营销的胜利. 现在无论是企业还是专业人士关于社会化营销的讨论越来越多了,有质疑

.Net页面局部更新引发的思考_实用技巧

最近在修改以前做的模块,添加一个新功能.整理了下才发现重用率很低,大部分的东西还是需要重新写.功能里用到了局部更新,所有整理一下一路来实现局部更新的解决方案及改进.  我接触的项目开发大多是以Asp.net WebForm开发的,自然会用到UpdatePanel,好处就是开发快.方便,当然产生的问题也是一大堆.然后是Ajax和一般处理程序配合实现异步请求更新.最后就是利用第三方绑定插件优化Ajax请求.  一.UpdatePanel 将需要更新的模块放入UpdatePanel的ContentTe

曲演杂坛--一条DELETE引发的思考

原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID INT IDENTITY(1,1) PRIMARY KEY, DT DATETIME ) 每次业务想要获取一个新ID,就执行以下SQL: INSERT INTO TB001(DT) SELECT GETDATE(); SELECT @@IDENTITY 由于这些数据只需保留最近一天的数据,因此建立一个SQL作业来定期删除数据,删除脚

“女硕士网络征婚受骗生子”事件引发的思考

http://www.aliyun.com/zixun/aggregation/17676.html">婚恋网站实名制何去何从?"女硕士网络征婚受骗生子"事件引发的思考 新华网北京12月16日电(记者涂铭.孟菁)近日,北京某媒体刊发题为<征婚女硕士受骗生孩告百合网>的报道,引发社会各界对婚恋网站"实名制"的热议. 事件前因后果如何?百合网是否存在信息审核不严的问题?"实名制"能否有效防范婚恋诈骗?记者先后采访的当事人分

“勒索病毒”肆虐引发的思考

"勒索病毒"以迅雷不及掩耳之势在全世界蔓延,这暴露出我们在网络安全预警和紧急防护机制方面还是后知后觉的,存在不小的漏洞 自5月12日以来,互联网内外一直颇不宁静.因为"勒索病毒"肆虐,全球深陷"网络浩劫".包括中国.俄罗斯.英国.美国在内的150多个国家和地区都被这个顽固的病毒搅得鸡犬不宁. "勒索病毒"是什么鬼?有消息称,该病毒是源自美国国家安全局遭泄露的病毒武器库,这种病毒会通过邮件.网页甚至手机侵入,使文档等资料全部被&

徒弟离职引发的思考

徒弟离职引发的思考                                                                                                        ―――帅宏军  2012年6月25日星期一       人才是咱这个星球上永恒的话题,关于人才的管理更是一门高深的艺术.对于管理,我也一直在不断求索.         就像一个馒头引发的血案一样,所有事情都有个起因.这段思考的起因又是什么呢?     事情的发展是这样的..

一个苦逼企业站SEOer被辞退所引发的思考

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在这个以结果为导向的企业环境中,规定时限内没有完成任务,就面临这被辞退的结果,很不幸,楼主中招了,网站降权两个月,愣是没拯救回来,更不幸的是,刚被辞退三天,别人还未接手我的工作之前,效果出来了. 今年年初进入这家公司,接手了两个老站的优化以及一个新站的整体建设及后期SEO.由于精力有限,就将注意力集中在其中一个老站和新站上,另外一个站决定保持