关于on点击事件在ios中失效的问题
IPhone中H5页面用on绑定click无效的解决方法
关于jquery中on绑定click事件在苹果手机失效的问题
如果不用必须用click,则换成touch自然不存在本文的bug。
当用如下方法绑定click事件时,
$(document).on('click','selector',function(){
});发现在PC各种浏览器,以及移动端模拟器上都是可以正常调试的,但是在ios的微信端访问或浏览器访问均有不同程度的无效情况,
解决办法如下:
第一种方法:解决的方法很巧妙,就是给需要绑定事件的元素添加一个css
cursor: pointer;。
selector {
cursor:pointer;
}第二种方法:把document换成selector的父元素,前提是父元素不是由JS生成的。
正解,其实安卓和ios里面还有些不兼容的状态
使用苹果手机访问的时候,发现了一个坑爹的问题,如论如何点击“下一步”,都没有任何反应,可是在安卓和各种模拟器中一切正常。后来经过查找资料才知道,苹果有这么个设置:
对于点击的对象,拥有cursor:pointer这个样式的设置,也就是说,鼠标放上去,能够出现“手”型的图标才被认作可以使用点击事件,
动态生成元素的点击事件
在andriod设备和电脑浏览器模拟上可以触发,而在apple移动设备上却无法触发。
试过很多办法,在元素生成后 再绑定事件,把click改成touch事件,都没有用,最后好不容易百度到了解决办法
解决的方法很巧妙,就是给需要绑定事件的元素添加一个css
将click换成touchstart(在移动端基本都用吧)
jquery click事件如何在移动端自动转换成touchstart事件。
因为移动端click事件会比touchstart事件慢几拍
移动设备某个元素上事件执行顺序是:
click事件在移动设备上虽然会识别但却是最后一个执行的,所以如果不把click事件换成touchstart事件的话,就可能造成延时导致交互上也慢了几拍
所以在移动端最好把click事件换成touchstart事件。
那么如何添加事件比较简单呢.
于是乎有了以下这种写法:
这样在pc端浏览器上面alert只执行一次,触发的事件是mousedown
在ios设备safari浏览器上面alert也只执行一次,触发的事件是touchstart
为什么只执行一次?
秘密在于当执行的是touchstart后,preventDefault掉了后面的click就不执行了,“非常完美”.
^_^! 一如既往的android设备蛋疼是必须的,测试发现除qq浏览器外其它浏览器都会alert两次
也就是说touchstart和mousedown的handle函数都执行了, 似乎是e.preventDefault()没有起作用。具体原因不明...
因为要兼容,所以就没办法了只能通过判断是否支持touch事件来分别添加事件了..
那就扩展一个jquery方法插件吧仿一个on方法的插件方法比如名称为quickOn,
quickOn虽然名字尴尬了一点,但是能用,例如:
额。。后来想想,为什么不直接重载jquery的on方法呢??
来吧,试试
这样暴力的来那么一下后,mmm....,on方法还是原来的用法,但如果你on的是click事件,那么在移动平台上会被替换成touchstart以迅速响应操作。
弊端太大,比如说,如果是a标签新打开一个页面的话,会直接打开两个
要想用JS模拟点击A标签事件,就得先往A标签中的文字添加能被JS捕获的元素,然后再用JS模拟点击该元素即可。
在有用到滚动touch相关的事件里阻止了默认行为时,对DIV的点击绑定失效时,
将其转成A标签即可。
$('.class').on("click",function(){……});相当于$('.class').bind("click",function(){……});
$(document).on("click",'.class',function(){……});相当于$('.class').live("click",function(){……});
js生成的元素绑定事件必须使用live,但新版的jq,已经淘汰了live,可以用on方法代替,但必须注意写法。
js 重写alert 兼容iphone使得alert 不带src
ios移动端(H5)alert/confirm提示信息去除网址(URL)
手机端html5触屏事件(touch事件)
而每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点(用来实现多点触控):
每个触摸点由包含了如下触摸信息(常用):
初步测试浏览器不支持,好在功能不常用,欢迎大家反馈。
点击出现黑色背景的解决:-webkit-tap-highlight-color:rgba(0,0,0,0)
在手机上(iphone)点击按钮的时候,屏幕总会闪动一下,这让页面看起来很不友好也不流畅。解决方案加了一句css就解决了:
//webkit是苹果浏览器引擎,tap点击,highlight背景高亮,color颜色,颜色用数值调节。
原因如下:
在移动端上,有事件监听的元素被点击的时候会被高亮显示,而-webkit-tap-highlight-color属性会在当用户点击iOS的Safari浏览器中的链接或JavaScript的可点击的元素时,覆盖显示的高亮颜色。
该属性可以只设置透明度。如果未设置透明度,iOS Safari使用默认的透明度。当透明度设为0,则会禁用此属性;当透明度设为1,元素在点击时不可见。
ios微信点击超链接,去掉半透明黑色框效果
iOS微信点击超链接或是图片超链接,总是弹出一层黑色遮罩层,在a标签上添加style='-webkit-tap-highlight-color:rgba(255,0,0,0);'即可
会使得ios苹果手机iphone输入框获取焦点失效?不定位弹出输入框?😬
jquery去掉onclick事件
修改输入框placeholder文字默认颜色-webkit-input-placeholder
也可以给这个属性加字体
JQuery 对 Select option 的操作
下拉框:
下面是对下拉框的基本操作:
option[text=5]这种?为什么我不行,而且网上也有一些说不行的。但是也有很多这样子写的,这到底是误导还是?
移动端,点击之后某个区域后有阴影
html点击有阴影
去掉点击后面阴影区域方块决解方法css
今天偶然发现一件很奇怪的事儿。
在移动端,在我去掉css的伪类及其伪元素跟相关的js之后,
在我点击某块区域的时候,总有一个背景盖在上面,当初以为是Js搞得鬼,
后来发现却不以为然,原来是css的一个属性搞得鬼,希望可以帮到大家。
问题1:
如图所示,我所遇到的状况:
问题2:去掉点击区域的边框阴影效果
芳芳造型
#2173,移动端,点击之后某个区域后有阴影
html点击有阴影
去掉点击后面阴影区域方块决解方法css
今天偶然发现一件很奇怪的事儿。
在移动端,在我去掉css的伪类及其伪元素跟相关的js之后,
在我点击某块区域的时候,总有一个背景盖在上面,当初以为是Js搞得鬼,
后来发现却不以为然,原来是css的一个属性搞得鬼,希望可以帮到大家。
问题1:
如图所示,我所遇到的状况:
问题2:去掉点击区域的边框阴影效果
移动端:active伪类无效的解决方法
在iOS系统的移动设备中,需要在按钮元素或body/html上绑定一个touchstart事件才能激活:active状态。
#2
移动网页active