JavaScript学习笔记7

76 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情

②事件对象的属性

button 返回当事件被触发时,哪个鼠标按钮被点击。 clientX 返回当事件被触发时,鼠标指针相对于页面正文的水平坐标。 clientY 返回当事件被触发时,鼠标指针相对于页面正文的垂直坐标。 screenX 返回当某个事件被触发时,鼠标指针相对于屏幕的水平坐标。 screenY 返回当某个事件被触发时,鼠标指针相对于屏幕的垂直坐标。 ctrlKey 返回当事件被触发时,"CTRL" 键是否被按下。 shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。 altKey 返回当事件被触发时,"ALT" 是否被按下。 type 返回事件的类型。 keyCode 返回键的虚拟键盘代码或此键的字符的Unicode码。

③事件源的获取

在事件处理程序中可能想要获得对事件源的引用,即事件是由哪个对象引发的。 可以使用事件对象的srcElement属性访问事件源,但这只适用于IE浏览器。 其他浏览器中可使用target属性代替。

事件源的获取示例:

function doclick(event) {
	var targetElement;
	if(document.all) {
		targetElement = event.srcElement;
	} else {
	targetElement = event.target;
	}
	alert(targetElement.value);
}

<form>
    <input type="button" name="btnA" id="btn_1" value="按钮A" οnclick="doclick(event);" />
    <input type="button" name="btnB" id="btn_2" value="按钮B" οnclick="doclick(event);" />
</form>

④阻止事件的默认动作

事件处理程序还阻止浏览器执行此事件发生后的默认动作。 在IE浏览器中,可以为事件对象的returnValue属性赋值为false实现这一目标, 而在其他浏览器中则要调用事件对象的preventDefult()方法。

5、典型应用

  • 跟随滚动条移动的广告
  • 表单数据有效性验证
  • 即时显示验证失败的错误消息
  • 列表框级联

在这里插入图片描述

例如鼠标移动,实时显示鼠标坐标实现:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#eventArea {
				border: 1px solid black;
				width: 100px;
				height: 100px;
			}
		</style>
	</head>
	<body>
		<!-- 用div作为鼠标移动区域 -->
		<div id="eventArea"></div>
		
		<!-- 在p标签内显示鼠标坐标 -->
		<p id="showData"></p>
	</body>
	<script type="text/javascript">
		
		// 根据id找到div标签对应的元素对象
		var divEle = document.getElementById("eventArea");
		
		// 根据id找到p标签对应的元素对象
		var pEle = document.getElementById("showData");
		
		// 声明事件响应函数
		function whenMouseMove(event){
			pEle.innerText = event.clientX + " " + event.clientY;
		}
		
		// 将事件响应函数赋值给对应的事件属性		
		// onmousemove表示在鼠标移动的时候
		divEle.onmousemove = whenMouseMove;
	</script>
</html>

简化代码:

document.getElementById("eventArea").onmousemove = function (event){
	document.getElementById("showData").innerText = event.clientX + " " + event.clientY;
};