关于jQuery的事件处理疑问

关于jQuery的事件处理疑问

老师,在学习jQuery事件处理时候,我知道可以在javascript里面绑定函数的方法来实现事件绑定。请问这种方法是只有鼠标和键盘事件才能使用的么?表单事件(submit、change、focus等)和文档/窗口事件(load、resize等)是要在对应标签设置的么?比如您看我下面的代码,是1-19的编程练习,虽然已达到题目要求,但是我之前很困惑为什么页面加载事件不能像鼠标键盘事件那样在JS内部单独绑定呢?

如下:我的第一种绑定页面加载的方法是在body标签加了个onlad属性绑定JS内部的jiazai()函数,但是我尝试用第二种方法在JS内来用jQuerty提取标签,为标签设置加载事件方法(即我JS中注释部分),发现不可行。

此外,我知道在表单中添加提交按钮,type值设置为submit的话,按下这个按钮会自动上传表单内容到后台,那这个按钮是默认添加了submit事件的么?如果是的话怎么在修改这个事件的内容呢?就是在上传数据之前弹出提示框之类的其他操作?另外就是,只有这个提交按钮才有submit事件,而其他元素没有这个事件的么?

<!DOCTYPE html >

<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery练习</title>

<style type="text/css">
.div1 {
	float: left;
	width: 50px;
	line-height: 30px;
	background-color: lightgray;
	margin-left: 10px;
	text-align: center;
	vertical-align: middle;
	cursor: pointer;
}

.div2 {
	width: 300px;
	height: 300px;
	border: solid gray 1px;
	margin-top: 60px;
	color: red;
}
</style>


</head>
<body onload="jiazai()">
	<h2>请选择背景颜色</h2>
	<div>
		<div id="blue" class="div1">蓝色</div>
		<div id="green" class="div1">绿色</div>
	</div>
	<div class="div2" id="bg"></div>
	<div>
		输入颜色首字母: <input type="text" name="color">
	</div>
	<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
	<script type="text/javascript">
		function jiazai() {
			alert("欢迎来到调色页面");
		}
		/*$("body").on("load", function() {
			alert("欢迎来到调色页面");
		});*/
		$("#blue").click(function() {
			//用id选择器
			$("#bg").css("background-color", "blue");
			$("div.div2").css({
				"font-weight" : "normal",
				"font-style" : "normal"
			});//将字体样式改回正常默认状态
			$("#bg").text("蓝色背景");
		});
		$("#green").click(function() {
			//用类选择器
			$("div.div2").css("background-color", "green");//设置一个样式,用逗号隔开属性名和属性值
			$("div.div2").text("绿色背景");
			$("div.div2").css({
				"font-weight" : "bold",
				"font-style" : "italic"
			});//设置多个样式,,用大括号括起来,用逗号隔开每组属性,属性名与值之间用冒号隔开
		});
		$("input[name='color']").keypress(function(event) {//属性选择器,属性值用单引号括起来
			if (event.keyCode == 66) {//按键是B
				$("#bg").css("background-color", "blue");
				$("div.div2").text("");
			}
			if (event.keyCode == 71) {//按键是G
				$("div.div2").css("background-color", "green");
				$("div.div2").text("");
			}
		})
	</script>
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,可以的。如:

http://img1.sycdn.imooc.com//climg/5d2959e30001b4d402910074.jpg

给body绑定事件,当页面加载时执行。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕阿满 2019-07-12 17:20:38

同学你好,关于同学的问题有如下的回答:

1、给body标签绑定了jiazai()函数后,在js中直接完成该函数即可,如:

http://img1.sycdn.imooc.com//climg/5d28487900019f9003200086.jpg

2、input中type为submit表示提交,可以在<input type="submit" onclick="upLoad()">绑定事件upLoad(),在js中实现具体的内容。另外可以使用button按钮,设置type=submit也可以提交。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 哆丶哆 #1
    老师,我是想知道如何能不在body标签绑定事件的情况下,在JS中用jQuery的方法为其设置页面加载事件呢,您的第一个回答我在代码中测试是可行的
    2019-07-12 21:17:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师