jQuery基础知识梳理(四)

13.jquery事件
常用的事件函数列表:
blur() 元素失去焦点

$('[type=text]').focus(function() {
	alert('获得焦点');
});

focus() 元素获得焦点

$('[type=text]').blur(function() {
	alert('失去焦点');
});

click() 鼠标单击

$('[type=button]').click(function() {
	alert('点击事件');
});

dblclick双击事件

$('button').dblclick(function() {
	alert('双击事件');
 });

mouseover() 鼠标进入(进入子元素也触发)

$('.father').mouseover(function() {
  	console.log('鼠标进入');
 });

mouseout() 鼠标离开(离开子元素也触发)

$('.father').mouseout(function() {
	console.log('鼠标离开');
 });

mouseenter() 鼠标进入(进入子元素不触发)

$('.big').mouseenter(function() {
	console.log('鼠标进入');
});

mouseleave() 鼠标离开(离开子元素不触发)

$('.big').mouseleave(function() {
	console.log('鼠标离开');
 });

mousedown() 鼠标按下

$('.du').mousedown(function() {
	console.log('鼠标按下');
});

keypress() 当键盘或按钮被按下时,发生 keypress 事件,每插入一个字符就会触发事件

 $('.du').keypress(function() {
	console.log('鼠标按下');
 });

mouseup() 鼠标松开

$('.du').mouseup(function() {
	console.log('鼠标松开');
});

hover() 同时为mouseenter和mouseleave事件指定处理函数

$('p').hover(function() {
		console.log('进入段');
	},
	function() {
		console.log('离开段');
});

resize() 浏览器窗口的大小发生改变

$(window).resize(function() {
	console.log('浏览器窗口的大小发生改变');
});

scroll() 滚动条的位置发生变化

$(window).scroll(function(){  
	console.log('滚动条的位置发生变化');
});

submit() 用户递交表单

$('form').submit(function() {
	alert('用户递交表单');
});
实例
<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title></title>
	<style type="text/css">
		.father {
			width: 200px;
			height: 200px;
			border: 2px solid;
		}
		#son {
			width: 50px;
			height: 50px;
			border: 2px solid;
		}
		.big {
			width: 200px;
			height: 200px;
			border: 2px solid;
		}
		#sam {
			width: 50px;
			height: 50px;
			border: 2px solid;
		}
	</style>
	<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		$(function() {
		   //blur() 元素失去焦点;focus() 元素获得焦点
			$('[type=text]').focus(function() {
				alert('获得焦点');
			});
			$('[type=text]').blur(function() {
				alert('失去焦点');
			});
		   //click单击事件
		   $('[type=button]').click(function() {
				alert('点击事件');
		   });
		   //dblclick双击事件
		   $('button').dblclick(function() {
		   		alert('双击事件');
		   });
		   //submit() 用户递交表单 
		   $('form').submit(function() {
				alert('用户递交表单');
		   });
		   //mouseover() 鼠标进入(进入子元素也触发)
		   $('.father').mouseover(function() {
		   		console.log('鼠标进入');
		   });
		   //mouseout() 鼠标离开(离开子元素也触发)
		   $('.father').mouseout(function() {
		   		console.log('鼠标离开');
		   });
		   //mouseenter() 鼠标进入(进入子元素不触发)
		   $('.big').mouseenter(function() {
		   		console.log('鼠标进入');
		   });
		   //mouseleave() 鼠标离开(离开子元素不触发)
		   $('.big').mouseleave(function() {
		   		console.log('鼠标离开');
		   });
		   //mousedown() 鼠标按下
		   $('.du').mousedown(function() {
		   		console.log('鼠标按下');
		   });
		   //keypress() 当键盘或按钮被按下时,发生 keypress 事件,每插入一个字符就会触发事件
		   $('.du').keypress(function() {
		   		console.log('鼠标按下');
		   });
		   //mouseup() 鼠标松开
		   $('.du').mouseup(function() {
		   		console.log('鼠标松开');
		   });
		   //resize() 浏览器窗口的大小发生改变
		   $(window).resize(function() {
				console.log('浏览器窗口的大小发生改变');
		   });
		   //scroll() 滚动条的位置发生变化
		   $(window).scroll(function(){  
				console.log('滚动条的位置发生变化');
			});
			//hover() 同时为mouseenter和mouseleave事件指定处理函数
			$('p').hover(function() {
				console.log('进入段');
			},
			function() {
				console.log('离开段');
			});
			
		});
		
	</script>
</head>
<body>
	<form action="">
		<label for="">元素失去焦点
			<input type="text" name="" id="" value=""/>
		</label><br>
		<input type="button" name="" id="" value="鼠标单击"/><br>
		<input type="submit" name="" id="" value="提交 "/>
	</form>
	<button>鼠标双击</button><br>
	<button class="du">鼠标</button><br>
	<div class="father">
		<div id="son">
			
		</div>
	</div>
	<div class="big">
		<div id="sam">
		</div>
	</div>
	<p>ssssssssssss</p>
</body>
</html>	

14.事件冒泡
什么是事件冒泡 ?
在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。
事件冒泡的作用
事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上),它还可以让你在对象层的不同级别捕获事件。

实例
<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title></title>
	<style type="text/css">
		
		.father {
			width: 500px;
			height: 500px;
			background-color: #044;
		}
		.son {
			width: 200px;
			height: 200px;
			background-color: #00ffff;
		}
		.con {
			width: 100px;
			height: 100px;
			background-color: #ffff7f;
		}
	</style>
	<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		$(function() {
			$('.con').on('click',function() {
				console.log('con');
				return false;   //阻止事件冒泡与阻止默认事件行为合并写法
			});
			$('.son').on('click',function(e) {
				console.log('son');
				e.stopPropagation(); //阻止事件冒泡
			});
			$('.father').on('click',function() {
				console.log('father');
			});
			//e.preventDefault() 阻止默认事件行为的触发。
			$('a').on('click',function(e) {
				e.preventDefault();
			});
			
		});
	</script>
</head>
<body>
	<div class="father">
		<div class="son">
			<div class="con"></div>
		</div>
	</div>
	<a href="https://jquery.lttttt.com/Details/ef8edf92-ca33-44b0-49fb-08d707a4e284.html">jQueryAPI</a>
</body>
</html>

15.事件委托
事件委托就是利用冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操作,事件委托首先可以极大减少事件绑定次数,提高性能;其次可以让新加入的子元素也可以拥有相同的操作。

实例
<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title></title>
	<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		$(function() {
			//事件委托
			$('.list').delegate('li','click',function() {
				alert('单击');
			});
		});
	</script>
</head>
<body>
	<ul class="list">
		<li>01</li>
		<li>02</li>
		<li>03</li>
		<li>04</li>
		<a href="">链接</a><br>
		<span>数目</span>
		<p>段落</p>
	</ul>
</body>
</html>

16.jquery元素节点操作
创建元素$()

var apli = $('<li>333</li>');
var preli = $('<li>111</li>');

添加元素
(1)内部添加,并且放到后面

$('ul').append(apli);
apli.appendTo('ul');

(2)外部添加

var bdiv = $('<div>4</div>'); 
var div = $('<div>6</div>'); 
$('#div').after(div);//添加到指定元素的后面
$('#div').insertAfter(div);
$('#div').before(bdiv);//添加到指定元素的前面
$('#div').insertBefore(bdiv);

注意:内部添加元素是父子关系,外部添加是兄弟关系
删除元素

//element.remove() 删除匹配元素本身
$('ul').remove();
//element.empty() 删除匹配元素集合中的子节点
$('ul').empty();
//element.html() 清空匹配的元素内容
$('ul').html(); 

element.clone().appendTo() 将一个元素克隆并添加到另一个元素中

$('span').clone().appendTo('ul');

wrap() 元素外部加套一个元素

$('span').wrap('<p></p>');

unwrap() 移除父元素

$('span').unwrap();

replaceWith() 将所有匹配的元素替换成指定的HTML或DOM元素。

$('span').replaceWith('<li></li>');

replaceAll() 用匹配的元素替换掉所有 selector匹配到的元素。

$("<b>替换</b>").replaceAll("p");

wrapInner() 将每一个匹配的元素的子内容(包括文本节点)用一个HTML结构包裹起来

$("p").wrapInner("<div></div>");
实例
<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title></title>
	<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		$(function() {
			//元素的操作
			//主要是遍历,创建,添加,删除元素的操作
			//1.遍历元素
			var sum = 0;
			var color = ['rad','blue','green','pink'];
			/* $('div').each(function(index,domEle) {
				//回调函数的第一个参数一定是索引(可以自己指定名称),第二个参数是DOM对象
				//DOM对象没有css()方法,需要转换成jQuery对象 $(domEle)
				$(domEle).css('color',color[index]);
				// console.log($(domEle).text());
				sum += parseInt($(domEle).text()) ;
			}); */
			// console.log(sum);
			//2.$.each() 方法遍历元素,主要用于遍历数据,处理数据
			/* $.each($('div'), function(i,ele) {
				console.log(i);
				console.log(ele);
				
			}); */
			//遍历数组
			$.each(color,function(i,ele) {
				console.log(i);
				console.log(ele);
			})
			
			//遍历对象
			$.each({name:'ander',
			color:'red',
			age:10,
			},function(i,ele) {
				console.log(i);
				console.log(ele);
			})
			
			//创建元素$();
			var apli = $('<li>333</li>');
			var preli = $('<li>111</li>');
			//添加元素
			/* 注意:内部添加元素是父子关系,外部添加是兄弟关系 */
			//1.内部添加,并且放到后面
			// $('ul').append(apli);
			apli.appendTo('ul');
			//2.内部添加,并且放到前面
			$('ul').prepend(preli);
			preli.prepend('ul');
			//3.外部添加
			var bdiv = $('<div>4</div>'); 
			var div = $('<div>6</div>'); 
			$('#div').after(div);//添加到指定元素的后面
			$('#div').insertAfter(div);
			$('#div').before(bdiv);//添加到指定元素的前面
			$('#div').insertBefore(bdiv);
			
			 //删除元素
			//element.remove() 删除匹配元素本身
			$('ul').remove();
			//element.empty() 删除匹配元素集合中的子节点
			$('ul').empty();
			//element.html() 清空匹配的元素内容
			$('ul').html(); 
			//element.clone().appendTo()将一个元素克隆并添加到另一个元素中
			$('span').clone().appendTo('ul');
			//wrap()元素外部加套一个元素
			$('span').wrap('<p></p>');
			//unwrap()移除父元素
			$('span').unwrap();
			//replaceWith()将所有匹配的元素替换成指定的HTML或DOM元素。
			$('span').replaceWith('<li></li>');
			//replaceAll()用匹配的元素替换掉所有 selector匹配到的元素。
			$("<b>替换</b>").replaceAll("p");
			//wrapInner()//将每一个匹配的元素的子内容(包括文本节点)用一个HTML结构包裹起来
			 $("p").wrapInner("<div></div>");  
		});
		
	</script>
</head>
<body>
	<div>1</div>
	<div>2</div>
	<div>3</div>
	<div id="div">5</div>
	<ul>
		<li>222</li>
	</ul>
	<span id="">一个</span>
	<p>第二个</p>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值