Jquery(三)事件函数


一、窗口事件类型函数

1.resize

用于窗口对象(window),当窗口大小发生变化时调用。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function() {
				$(window).resize(function() {
					alert("我被改变大小了!");
				});
			});
		</script>
	</head>
	<body> 
	</body>
</html>

2.scroll

用于窗口、iframe、div 等可能出现滚动条的对象。当使用鼠标滚轮滚动时调用。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function() {
						var count = 0;
						$(window).scroll(function() { 
							// alert(count) 
							$("span").text(count++); 
						});
						
						});
		</script>
	</head>
	<body>
		<div style="height: 1400px;background-color: aquamarine;"> 
		</div> 
		<span>0</span>
	</body>
</html>

3.window.onload、body.onload、document 的区别

window.onload 和 body.onload 为同一事件绑定方式,同时绑定时只调用一个。
唯一的区别是, 可以在 body 标签上声明处理函数。例如<body onload=‘init()’>这两个事件对应的是整个文档(包含文档上的 css、js、html、图片信息)加载完成后调用。只能写一次 document.ready:当 html 文档解析后就调用事件处理函数。图片、css 等此时有可能没有加载,不兼容。
文档加载事件函数:
load:用于 window、图片等。在文档或图片加载完成后执行处理函数。
ready:用于 document 对象,当文档加载后执行处理函数,相当于 document.onload.可以写多次
–举例:$(document).ready(fun1);
–缩写:$(fun1);
unload:用于 window 对象。在文档关闭前执行处理函数。

二、表单事件函数

1.focus

当元素获得焦点时触发目标函数,不支持冒泡;

<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function() { //在页面加载完成后让#username 得到焦点
				$("#username").focus();
			});
		</script>
	</head>
	<body>
		<input type="text" id="a" value="a" /> 
		<input type="text" id="b" value="b" /> 
		<input type="text" id="username" value="zs" /> 
		<input type="text" id="c" value="c" /> 
	</body>
</html>

效果展示:
在这里插入图片描述

2.focusin

和 focus 一样,只是此事件支持冒泡;focusin 事件跟 focus 事件区别在于,他可以在父元素上检测子元素获取焦点的情况。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function() {
				$("p").focusin(function() {
					$(this).find("span").css("display", "inline").fadeOut(1000);
				});
			});
		</script>
	</head>
	<body>
		<p><input type="text" /> <span>focusout fire</span></p>
		<p><input type="password" /> <span>focusout fire</span></p>
	</body>
</html>

效果展示:
在这里插入图片描述

3.blur

当 focusable 元素失去焦点时触发目标函数,不支持冒泡;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script>
		<!--判断输入的值是否是数,如果是数就不管了,不是数要弹框警告-->
		<script type="text/javascript">
			$(function(){
				var old=0;
				$("#numb").focus(function(){
					old=$(this).val();
				})
				$("#numb").blur(function(){
					var t=$(this).val();
					if(isNaN(t))
					{
						$(this).val(old);
						alert("输入错误");
					}
					else{
						alert("输入正确");
					}
//				parseFloat() parseInt() 将字符串转换成数,如果转换不成功  Nan。
//              如果数字开头的字符串,会将数字转换成数类型。
//				var  numb = parseInt(v);
				//  alert(isNaN(v))
			})

			})
		</script>
	</head>
	<body>
		请输入购买数量:<input type="text" id="numb" value="0"  />
	</body>
</html>

效果展示:
在这里插入图片描述

4.focusout

和 blur 一样,只是此事件支持冒泡;select

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function() {
				$("p").focusout(function() {
					$(this).find("span").css("display", "inline").fadeOut(1000);
				});
			});
		</script>
	</head>
	<body>
		<p><input type="text" /> <span>focusout fire</span></p>
		<p><input type="password" /> <span>focusout fire</span></p>
	</body>
</html>

效果展示:
在这里插入图片描述

5.change

当下拉框、单选框,文本框的值发生变化时调用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script>
	</head>
	<body>
		<select id="num" name="num">
			<option value="4">4</option>
			<option value="8">8</option>
			<option value="12">12</option>
			<option value="16">16</option>
		</select>
		当前每一页显示<span id="pages">6</span>条信息。
		<script type="text/javascript">
			$(function(){
				$("#num").change(function(){
					alert("已绑定");
					var value=$(this).val();
					$("#pages").html(value);
				})
			})
		</script>
	</body>
</html>

在这里插入图片描述

6.submit

当表单提交时触发,return false 不提交 return true 提交。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script>
		<script type="text/javascript">
			$(function(){
					$("#sub_btn").click(function(){
						var val1= $("#uname").val();
						var val2=$("#psd").val();
						if(val1==null||val1==""){
							alert("请输入账号");
						}
						else if(val2==null||val2==""){
							alert("请输入密码");
						}
						else{
							$("#myform").submit();
						}
					})
			})
		</script>
	</head>
	<body>
		<form id="myform" action="index.html">
			用户名:<input type="text"  id="uname" name="uname" placeholder="请输入用户名"/>
			密码:<input type="password"  id="psd" name="psd" placeholder="请输入密码"/>
			<input type="button" id="sub_btn" value="登录"/> <!-- 注意:type值不能为submit;标签要用input,不能用button-->
			<!-- button自带submit效果,若type为submit同理,会自动提交-->
		</form>
	</body>
</html>

三、jQuery 事件对象内置函数及属性

1.event.currentTarget

获取绑定事件的 DOM 元素,相当于 this。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function() {
				$("p").click(function(e) {
					console.log($(this).html());
					console.log(e.currentTarget);
					console.log(e.currentTarget == this);
				})
			})
		</script>
	</head>
	<body>
		<p>刘备</p>
		<p>刘备 2</p>
	</body>
</html>

效果展示:
在这里插入图片描述

2.event.data

传递给执行函数的参数。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function() {
						$("p").click({
									id: 1
						}, function(e) {
							console.log(e.data.id); 
							//通过 e.data.参数名取得传参的值 
							console.log($(this).html()); 
							console.log(e.currentTarget); 
							console.log(e.currentTarget==this); 
						}) 
			}) 
		</script>
	</head>
	<body>
		<p>刘备</p>
		<p>刘备 2</p>
	</body>
</html>

效果展示:
在这里插入图片描述
event.isDefaultPrevented():返回是否调用
event.preventDefault() 方法,来返回一个布尔值。
event.pageX:鼠标相对于文档的左边缘的位置(左边)。
event.pageY:鼠标相对于文档的顶部边缘的位置(坐标)。
event.preventDefault()如果调用这个方法,默认事件行为将不再触发。
event.target:触发事件的 DOM 元素。
event.timeStamp:这个属性返回事件触发时距离 1970 年 1 月 1 日的毫秒数。
event.type:描述事件的性质

总结

1.blur:元素失去焦点时触发目标函数,不支持冒泡
2.focusout:元素失去焦点时触发目标函数,支持冒泡
3.change:当下拉框、单选框,文本框的值发生变化时调用
4.submit:当表单提交时触发,return false 不提交 return true 提交
5.event.currentTarget:获取绑定事件的 DOM 元素,相当于 this
6.event.data:传递给执行函数的参数,拿到参数:event.data.参数名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君知燕云归

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值