jQuery
jquery : Write Less, Do More.
框架库和jQuery介绍
javaScript框架库: 就是一个普通的js文件, 封装了很多的函数, 封装了很多兼容的代码.
jQuery : 是javaScript框架库中的一种.
好处: 可以解决js兼容问题, 体积小, 链式编程, 隐式迭代, 插件丰富, 开源, 免费.
jQuery文件使用
引入文件就行了
jQuery中顶级对象
Dom document , Bom window
jQuery 简化写法 $
页面加载事件
1 | 1、window.onload=function(){ |
$的常用作用
- 在页面基本标签加载完成时执行代码
1 | $(function() {}); |
- 将原生的js对象转换为jQuery对象.
1 | $(原生的js对象); 注意: $(this); |
原生js对象包括 : 内置对象/自定义对象/DOM对象/BOM对象
注意: 实际处理函数中的this是一个原生js对象, 需要使用$(this)转换为jQuery对象
jQuery对象[0] 或者 jQuery对象.get(0) 来得到js对象
- $(‘选择器’)
1 | $('#btn'); |
- 接收一个html字符串,可以把html字符串转换为jQuery对象
1 | // 第一种方式 |
常用的选择器
基本选择器
1 | id选择器 : #box{} |
层级选择器
1 | 直接子元素 : div p{} |
筛选选择器
1 | 偶数选择器 : #box:even{} |
常用的方法
1 | HTML代码/文本/值 |
设置元素样式
1 | .css()写法 |
操作类样式
1 | css() 获取或设置css的样式, 用来取代style属性 |
获得兄弟元素
1 | siblings() : 所有兄弟元素 |
操作动画效果
1 | hide(动画执行时间, 回调函数) // 隐藏元素 |
操作元素(创建/添加…)
DOM中创建元素
1.document.write(“标签代码”);缺陷:页面加载后创建元素,把页面中原有的内容全部的干掉
2.innerHTML, 每次设置值, 都会重新渲染页面, 效率比较低; innerHTML添加的元素, 比较难以绑定事件.
3.document.createElement(“标签的名字”), 直接可以获取元素对象, 可以方便的绑定事件.
jQuery中创建元素
1.$(“HTML的字符串”);
1 | // 点击按钮, 创建一个超链接 |
2.对象.html(“HTML的字符串”);
1 | // 相当于innerHtml |
jQuery中添加元素
内部插入:
append() : 添加一个子元素, 追加到最后
appendTo()
prepend() : 添加一个子元素, 追加到最前
prependTo()
1 | // append方法把元素添加到另一个元素中的时候,有剪切的效果 |
外部插入:
after() : 在每个匹配的元素之后插入内容
insertAfter()
before() : 在每个匹配的元素之前插入内容
insertBefore()
jQuery中移除元素
1 | // 清空div中的内容 |
jQuery中替换元素
jQuery中克隆元素
1 | // 克隆元素 |
元素绑定多个事件
原生的js中, 可以为同一个对象添加多个不同的事件, 但不能添加多个同一事件.
jQuery中, 可以为一个独享添加多个同一个事件.
绑定事件的方法
1.jQuery对象调用事件方法绑定事件
1 | $('#btn').click(function () {}); |
2.使用bind方法绑定事件
1 | $('#btn').bind('事件名称不带on', function () {}); |
3.使用delegate方法绑定事件
父元素给子元素绑定事件
用途 : 可以为当前不存在的子元素添加事件!
1 | 父元素对象.delegate('子元素', '事件名称不带on', function () {}); |
委托机制, 利用了事件冒泡(父元素可以接受到子元素发生的事件), 可以再父元素中获得事件对象, 从而判断是哪个子元素 (event.target) 发生了事件.
依赖于两个条件: 1. 冒泡事件 2. 事件对象中的 target 属性
4.使用on方法绑定事件 :
1 | 取代bind的用法: |
解绑事件的方法
1. 使用on绑定的事件
1 | 解除绑定在当前元素上的所有当前事件的处理函数 |
2. 使用bind绑定的事件
1 | 元素对象.unbind("事件名称不带on") |
3. 使用delegate绑定的事件
1 | 父元素对象.undelegate("子元素", "事件名称"); |
1 | <div> |
事件触发的3种方式
1 | // 1.常用方法 |
事件对象
1 | $(function () { |
事件冒泡
元素中有元素, 这些元素都有相同的事件, 一旦最里面的元素的事件触发了, 外面的所有的元素的相同的事件都会被触发
例 : 元素A中有一个元素B, A和B都有点击事件, B点击事件触发, A点击事件自动触发
取消事件冒泡
jQuery中 return false
each()方法
// jQuery对象就是一个维数组, 其中存的元素就是js对象, each()遍历方法
each(function (index, element){}) 遍历对象
// index 索引
// element 当前对象// jQuery对象就是一个维数组, 其中存的元素就是js对象, each()遍历方法
each(function (index, element){}) 遍历对象
// index 索引
// element 当前对象
jQuery插件
就是实现一些功能的封装.
插件 : js代码, css代码, 页面的结构
封装自己的插件:
1 | // changeColor.css |
jQueryUI
- 引入jQueryUI的样式文件
- 引入jQuery文件
- 引入jQueryUI的js文件
- 使用jQueryUI功能