jQuery的替换/克隆
1. 替换/克隆:
克隆: var $newImg=$img.clone()
2. 事件:
标准:
1. 普通绑定: $().on("事件名",function(){ ... })
.addEventListener(...);
解绑: $().off("事件名",原函数对象)
2. 利用冒泡:
$parent.on("事件名","判断条件选择器",function(){
this->e.target
})
2个好处:
1. 自动使用"判断条件选择器"先筛选符合条件的元素再进入函数执行——不用自己写if判断
2. 将this->e.target,不用自己写e和e.target了
21种常见事件提供了简写: $().事件名(处理函数)
页面加载后执行:
1. 仅DOM内容加载后就提前执行: DOMContentLoaded
仅等待DOM内容: HTML和JS
可执行: 事件绑定,添加/删除/遍历/修改元素的内容
不能执行: 获取/修改CSS, 获取图片大小
如何: $(document).ready(function(){ ... })
$().ready(function(){ ... })
$(function(){ ... })
总结: 几乎所有jQuery代码都要放在$(function(){...})中
2. 所有页面内容加载完成后,才执行: window.onload
等待所有网页内容: HTML,CSS,JS,图片
都可执行
如何: $(window).load(function(){ ... })
总结: 只有依赖CSS和图片的代码才放在$(window).load()
鼠标事件:
mouseover mouseout的问题:
频繁进出子元素,也会冒泡触发父元素上的鼠标事件
jQuery改为用mouseenter和mouseleave代替
优点: 即使频繁进出子元素,也不会冒泡触发父元素上的鼠标事件。
如果同时绑定了mouseenter和mouseleave,其实只需要绑定一个hover就可以:
$().hover(//mouseenter+mouseleave
function(){ ... },//给mouseenter
function(){ ... } //给mouseleave
)
如果两个处理函数刚巧可以合并为一个处理函数,其实只写一个处理函数也行
模拟触发: 没有单击到按钮,也能执行按钮的处理函数,而不用将代码写2遍
$(btn).trigger("事件名") $(btn).trigger("click")
其实可简写为:$(btn).click()
3. 动画:
1. 简单动画: 写死的三种固定动画效果:
1. 显示隐藏: .show() .hide() .toggle()
不带参数,默认使用display:block/none控制显示隐藏,瞬间变化,没有动画效果
给一个持续时间参数: .show(ms) .hide(ms) .toggle(ms)
2. 上滑下滑: .slideUp(ms) .slideDown(ms) .slideToggle()
3. 淡入淡出: .fadeIn(ms) .fadeOut(ms) .fadeToggle()
问题1: 用js代码写死的效果,不可维护
问题2: 用js定时器实现的动画效果,效率不如css动画
2. 万能动画: 可对任意css属性实施动画效果
$().animate({
css属性:目标值,
... : ...
},持续ms)
强调: 只支持单个数值的属性
不支持:不是数值的属性
不支持颜色渐变——不如transition
排队和并发:
排队: 多个css属性先后依次变化
并发: 多个css属性同时变化
放在一个animate函数内的多个css属性是并发变化
停止动画: $().stop();
问题: 默认只能停止队列中正在播放的一个动画,后续动画依然会执行
解决: $().stop(true) 停止当前动画并清空队列
选择器: :animated 选择和判断正在播放动画的元素
动画播放后执行:
每个动画API都有最后一个参数——回调函数
回调函数会在动画播放后自动调用执行
总结: 首选CSS: 效率高,可维护
和交互有关的动画,只能用JS定时器/JQUERY
和动态添加/删除DOM元素有关的动画,也必须用JS定时器/jQuery
4. 类数组操作:
2个API:
1. 遍历:
//实例方法
$()->jQuery()->new jQuery()
$().each(function(i,elem){ //forEach(function(elem,i,arr))
//i 获得当前位置
//elem 获得当前元素对象
})
//静态方法
//$->jQuery
$.each(类数组对象/数组,function(i,elem){
})
2. 查找:
$("所有元素").index("要找的元素")
在"所有元素"的jQuery对象中,查找"要找的元素"的位置
如果在同一个父元素下找子元素的位置:
$(要找的子元素).index()
5. 添加自定义API:
其实就是在jQuery的原型对象中添加自定义函数:
jQuery.fn=jQuery.prototype
定义新函数:
jQuery.fn.新函数=function(){
}
调用新函数:
$(...).新函数()
jQuery的替换/克隆的更多相关文章
- jQuery实现节点克隆、替换和互换
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 节点操作-创建并添加&删除节点&替换&克隆节点
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" ...
- JQuery replace 替换全部
天在做写个程序时遇到需要替换的功能,可是一开始用jquery的replace时,发现只替换到第一个.最后没办法,只好用正则表达式来例如下面 re = new RegExp("{thisc ...
- JQuery字符串替换replace方法
在日常的js开发中,常常会用到JQuery, 当要把字符串中的内容替换时,如果使用类似C#的string.replace方法,如下 var str='aabbccaa'; str=str.replac ...
- jQuery之替换节点
如果要替换节点,jQuery提供了两个方法:replaceWith()和replaceAll(). 两个方法的作用相同,只是操作颠倒了. 作用:将所有匹配的元素都替换成指定的HTML或者DOM元素.( ...
- jQuery实现节点克隆
为了便于在DOM节点进行添加或者删除节点元素,使用克隆的方法比较方便,下面是js部分的主要代码 var container = $('.recordCon'); var cloneDom = cont ...
- html(jQuery)替换字符串(全部替换)
var str= "a<br/>b<br/>c<br/>"; var Newstr = str.replace("<br/&g ...
- jQuery页面替换+php代码实现搜索后分页
HTML代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- jquery toggle 替换的实现
$('#example').click(function(){$("#exampleBox").toggle();}) 改为 $('#example').click(functio ...
随机推荐
- Linux 日常操作
Linux 日常操作 */--> Linux 日常操作 Table of Contents 1. 查看硬件信息 1.1. 服务器型号序列号 1.2. 主板型号 1.3. 查看BIOS信息 1.4 ...
- 【转帖】Python 重复造轮子/造轮子找模子,你都应该熟读该文
Chardet,字符编码探测器,可以自动检测文本.网页.xml的编码. colorama,主要用来给文本添加各种颜色,并且非常简单易用. Prettytable,主要用于在终端或浏览器端构建格式化的输 ...
- GOLANG 匿名函数笔记
在函数内部,没有名字的函数,就是匿名函数 实现方法1: func main(){ a := "我是无参无返回值的匿名函数" x := func(){ //可以获取到匿名函数外部的变 ...
- php://input和parse_str()使用
php://input可以读取没有处理过的POST数据,总结起来就是, 在用$_POST获取不到由APP或者一些接口的回调数据时,就用php://input试试 实例 index.php <fo ...
- Springboot以Jetty为容器实现http重定向到https
1 简介 之前讲解的Springboot整合https用的是tomcat作为容器,tomcat也是一个流行多年的老牌Java容器了.但针对不同的场景,还是会有不同的选择,如Jetty.Jetty是架构 ...
- 关于SQL语言,这些你不得不了解!
一.SQL概述 关系数据库标准语言SQL(结构化查询语言). 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言, ...
- CodeForces - 1047A
A. Little C Loves 3 I time limit per test1 second memory limit per test256 megabytes inputstandard i ...
- 无回显命令执行TIPS
DNSlog 出属于, POST DATA HEX 等一些 命令延迟注入 找WEB PATH 将id,pwd,hostname的结果写在js/test1.txt中,命令find . -type ...
- C. Barcode dp
https://codeforces.com/problemset/problem/225/C 这个题目和之前一个题目很像 https://www.cnblogs.com/EchoZQN/p/1090 ...
- java制作甘特图
今日来做一下甘特图.网上搜到了这个源码,但是导的jar包,并没有给我.swiftganttdemo但是名为swiftgantt制作:所以灵机一动在网上搜到了swiftangantt组件:在组件中找到了 ...