ios 下fixed遮罩背景无法动态监听,解决办法

场景:当要弹出一个fixed的对话框(就是一个弹出框),同时给背景添加一个遮罩层,当操作完后想点击遮罩层关闭整个弹出框
条件1:fixed的遮罩层是动态创建的,使用click事件监听不到
条件2:在遮罩的下面有链接或是不能点击的元素(或有操作或有链接跳转等)

针对条件1,使用jQuery的on来监听整个文档,当冒泡到指定元素上时,再执行相应操作

针对条件2,使用touchstart/touchend,会产生点透问题

我的经验以及解决办法:

1、使用jQuery的delegate方法监听click事件

2、使用来自stackoverflow 的建议

On iOS there is no event bubbling without a cursor style. So in your CSS you need to add cursor: pointer; to the element。

因此,最后的解决办法,使用delegate来动态监听点击事件,在遮罩层上加上样式cursor:pointer

如果点击时不想出现一个黑层,可在全局设置*{-webkit-tap-highlight-color:rgba(0,0,0,0)“*”代表不想出现黑影层的元素}

时间: 2024-10-06 18:47:52

ios 下fixed遮罩背景无法动态监听,解决办法的相关文章

ios下元素溢出设置 overflow:auto; 不能滑动解决办法

ios下元素溢出设置 overflow:auto; 不能滑动解决办法: overflow:auto; overflow-y:scroll; -webkit-overflow-scrolling:touch; height:200px;

关于 edittext 软键盘退出监听解决办法

edittext 有个onCreateInputConnection 的方法,通过它可以自定义一个输入法连接器,那里连接器里面有个方法(finishComposingText)能监听输入完成的动作. public class MyEditText extends EditText{ public MyEditText(Context context) { super(context); } private OnFinishComposingListener mFinishComposingLis

oracle静态与动态监听

在运行lsnrctl命令的status时,常会看到如下返回值: 服务“test”包含1个例程. 例程"mydata",状态 UNKOWN,包含此服务的一个处理程序... 服务"a"包含1个例程. 例程"mydata",状态 READY,包含此服务的一个处理程序... 这里的,状态UNKOWN即表明为静态注册(手动填写参数): 状态为READY的记录,表明为动态注册(listener.ora参数由PMON进程自动从参数文件获取): 一.静态注册 监

关于动态监听的一些测试

昨天做了一个实验,环境是这样的,建立一个静态监听端口1526以及一个动态监听端口1521,并且要通过在tnsname用两种连接字符串进行连接,静态连接的字符串直接连接没有问题,可是后来动态连接的字符串怎么也连接不进去,尝试注册 SQL> alter system register; System altered. [[email protected] ~]$ lsnrctl stat LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 26

关于EditText的输入动态监听

关于对文本输入框 EditText的动态监听 直接贴上源码 //自己写一个 ChangableEditText类继承与实现文本监听 public class ChangableEditText extends AutoCompleteTextView implements TextWatcher{ public ChangableEditText(Context arg0, AttributeSet arg1) { super(arg0, arg1); // TODO Auto-generate

动态监听与静态监听(转载)

目录(?)[+] 1.在lsnrctl命令的status时常会看到如下返回值 1.认识下注册 2.静态监听 3.动态注册 1.1 缺省的动态注册 2.2 自定义端口的动态注册监听 在lsnrctl命令的status时,常会看到如下返回值: [plain] view plain copy print? Service "elvis" has 2 instance(s). Instance "elvis", statusUNKNOWN, has 1 handler(s)

oracle数据库静态监听和动态监听 区别

oracle静态监听和动态监听 一.什么是注册? 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名 就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. 在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册 到监听器中:数据库服务器对应的实例和服务.) 相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对

Oracle 11.2.0.4 动态监听不注册

我所在的测试环境中有两个aix操作系统做成了HACMP + oracle11g 单实例.主备库. 当主库切换到备库时,发现动态监听不能注册. 查看/oracle/app/oracle/product/11.2.0/network/log/listener.log的时候发现有如下报错. 上面是我的监听日志,日志中有写warning的告警 上网搜索Doc ID 372959.1 得到答案,可以把监听日志中WARNING部分去掉 解决方法如下: 在监听配置文件最下面添加一行 SUBSCRIBE_FOR

【Spring】使用Log4jConfigListener动态监听log4j.properties

在web.xml上添加如下配置即可动态监听log4j.properties的变化 <!-- 需要监听的log4j文件地址 -->! <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <!-- 监听log4j