场景:当要弹出一个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