ios事件混乱+点击事件失效+一些兼容问题解决「坑记」
现象:例如点击文本框,输入文字后,会发现整个网页的点击事件都无法触发,像失效了一样。
根本原因:根本原因是:input聚焦后页面被顶起,然后失焦后页面回位,但是这里只是视觉上回位了,window其实已经被顶上去一定的距离。所以当你再次点击页面时,其实已经就是错位的了,目前只发现部分ios在微信浏览器有这种问题。
解决方案:引用js即可。
现状:物理键返回后,一些失效的信息依然显示在页面上。
为了解决这个办法,最终选择使用pageshow方法。
onpageshow事件在用户浏览网页时触发。
onpageshow事件类似onload事件,onload事件在页面第一次加载时触发,onpageshow事件在每次加载页面时触发。即onload事件在页面从浏览器缓存中读取时不触发。
思路 :通过点击页面的任意位置都能关闭div,主要是$(document).click事件.
当委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效。
原因:ios不认为div、span元素是可以点击的。
jQuery知识一览
jQuery官网:https://jquery.com/jQuery是一个高效、轻量并且功能丰富的js库。核心在于查询query。jQuery是一个优秀的js函数库,是React/Vue/Angular框架之外中大型项目的首选。jQuery的主旨是write less, do more。
- html元素的选取
- 操作html元素
- css操作
- html事件处理
- 实现js动画效果
- 能够链式调用
- 容易扩展插件
- 封装了ajax
引入jQuery的方式有2种,一种是项目中直接引入jQuery的min.js文件,一种是使用服务器端jQuery文件(使用cdn)脚本标签方式引入。
在官网的:https://jquery.com/download/ 链接下可以下载到完整的代码,放到项目文件的js文件夹下。
在网站:https://www.bootcdn.cn/ 可以获得稳定、快速、免费的cdn加速服务。
- 1.x 版本兼容老版本的IE,文件比较大
- 2.x 版本文件比较小,支持IE8+
- 3.x 版本引入部分新API,提供多个分包的版本,支持IE9+
开发过程中一般使用非min.js文件方便调试,生产环境部署上线时才使用min.js这种压缩文件。
从源码中可以看出,jQuery的整体逻辑可以用以下简单的结构进行描述:
从源码中可以看出,jQuery被定义为一个函数,函数中返回了一个实例对象(看new关键字)。
继续跟踪源码 new jQuery.fn.init( selector, context),这个函数中调用了makeArray,当然在其他if判断语句中也有返回伪数组对象(比如,定义了length字段,还有[0]的操作),这里拿makeArray作为演示。
查看makeArray函数:
所以这个返回实例对象,是一个伪数组。
从源码中可以看出,将jQuery函数和window.$ 以及window.jQuery绑定赋值,所以使用jQuery和$ 标识符就可以直接使用jQuery。通常在项目中直接使用$标识符,快捷简省。
所以在引入jQuery的项目中:
通常形式为:$(param)
- param为函数:dom加载完成后,执行该回调函数
- param为选择器字符串:查找与该选择器匹配的所有标签,并封装成jQuery对象
- param为dom对象:将该dom对象封装成jQuery对象
- param为标签字符串:创建标签对象并封装成jQuery对象
- jQuery函数返回的是一个伪数组(Object对象),可以使用length和下标。
通过$(param)传入的是selector、element、标签情况下,返回的是包含1个或者多个dom元素对象的伪数组。
直接修改css属性(如果其dom标签存在这个css属性)
清空某标签下的所有dom:
给某标签下添加dom标签:
移除、添加class:
获取dom标签上的属性:
设置标签的属性:
点击:
hover:
监听事件:
post请求:
JavaScript学习笔记(三十二)—jQuery(中)
jQuery
- 昨天讲了 jQuery 的基本选择器筛选器和属性操作
- 今天来说一些 jQuery 别的东西
元素操作
- 创建一个元素
- 内部插入元素
- 外部插入元素
- 替换元素
- 删除元素
- 克隆元素
元素尺寸
- 操作元素的宽和高
- 获取元素的内置宽和高
- 获取元素的外置宽和高
元素位置
- 元素相对页面的位置
- 元素相对于父元素的偏移量
- 获取页面卷去的高度和宽度
元素事件
- 绑定事件的方法
- 移除事件
- 只能执行一次的事件
- 直接触发事件
可以直接使用的常见事件
- 可以直接使用的事件就是可以不利用 on 来绑定,直接就可以使用的事件方法
- click
- dblclick
- scroll
- hover
动画
- show
- hide
- toggle
- animate
- stop
- finish
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。