event事件对象(应用案例,比如阻止冒泡)

event事件对象(应用案例,比如阻止冒泡)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>演示event事件对象(应用案例,比如阻止冒泡)-雪豹软件工作室</title>
<link rel="stylesheet" type="text/css" href="body.css">
<style type="text/css">

body {
	color: black;
	font-weight: bold;
}

input {
	width: 80%;
	height: 40px;
	border: 2px solid #8E388E;
	border-radius: 5px; /*设置边框的4个直角变成圆角有弧度*/
	font-weight: bold; /*文本框中的文本字体加粗*/
	color: blue;
}

input[type=button] {
	width: auto;
	color: white;
	background-color: #8E388E;
}

input[type=checkbox] {
	width: 16px;
	height: 16px;
}

h2 {
	color: red;
	text-algin: center;
	vertical-align: middle;
	display: inline;
}

div {
	background: #f0f0f0;
	width: 98%;
	height: 100px;
	border: solid 3px #8E388E;
	border-radius: 5px;
	margin: 0 auto;
	text-align: center;
	height: auto;
}

span {
	border: solid 3px #CD0000;
	border-radius: 5px; /*圆角弧度*/
	text-align: center;
	width: 300px;
	height: 60px;
	display: block; /*对span设置display属性等于block后,span就会变成独占一行,span元素的前后内容会换行*/
	display: inline-block; /*即能实现span宽度和高度生效,又让span元素前后内容不换行*/
}

.myDiv {
	border: solid 3px black;
}

.myDiv2 {
	border: solid 3px green;
}

.myDiv3 {
	border: solid 3px blue;
}
</style>

<script type="text/javascript">
	/**
	 参考网页 http://www.jb51.net/article/48935.htm
	 参考网页http://www.itxueyuan.org/view/6340.html
	 参考网页http://www.w3school.com.cn/jsref/dom_obj_event.asp
	 */

	/**
	 * 关于事件对象,以下这篇文章写得很详细,可以参考
	 参考文章http://www.jb51.net/article/26552.htm
	 */

	function testEvent() {
		alert(window.event);
	}

	function testFirefoxEvent() {
		/**
		既然匿名函数的event传入了,那么在该闭包中clk是可以获取到event的,事实上点
		击后Firefox会报错:event is not defined。猜测该匿名函数的闭包和function clk(){alert(event);}不
		是同一个闭包环境
		 */
		alert(arguments.callee.caller);
		alert(event);
	}

	function testFirefoxEvent2(arg1, arg2) {
		alert(arguments.callee.caller);
		alert(arg1);
		alert(arg2);
		alert("arguments[0]" + arguments[0]);
	}

	
	/*
	CSS、Display(显示)与 Visibility(可见性)参考http://www.runoob.com/css/css-display-visibility.html
		display
	    隐藏必须使用none值,该隐藏不占位,页面源代码可见。
	    显示可使用空或block或inline,意思分别为:无此属性、显示视为div(有换行符)、显示视为span(无换行符)。
	    
		visibility
    	隐藏必须使用hidden值,该隐藏占位,页面源代码可见。
    	显示可使用空或visible,意思分别为:无此属性、显示。
	*/
	
	//显示或隐藏div(display的方式不会占位置)
	function showOrHideElement1(elementId) {
		var divNode = document.getElementById(elementId);
		if (divNode.style.display == "none") {
			divNode.style.display = "block";
		} else {
			divNode.style.display = "none";
		}
	}

	//显示或隐藏div(visibility的方式始终会占位置)
	function showOrHideElement2(elementId) {
		var divNode = document.getElementById(elementId);
		if (divNode.style.visibility == "hidden") {
			divNode.style.visibility = "visible";
		} else {
			divNode.style.visibility = "hidden";
		}
	}
	
	//给每一个文本框的边框设置随机颜色
	function randomColor(){
		//定义一个颜色的数组
		var colors = new Array("red", "blue", "#228B22", "#8E388E", "#5B5B5B", "#0A0A0A");
		var inputNodes = document.getElementsByTagName("input");
		for (var index = 0; index < inputNodes.length; index++) {
			if (inputNodes[index].type == "text") {
				//随机设置文本框元素的边框颜色
				inputNodes[index].style.border = "3px solid " + createRandomColor(colors);
			}
		}
	}
	
	//产生随机颜色
	function createRandomColor(colorArray){
		//产生随机数
		var randomNumber = Math.round(Math.random() * (colorArray.length - 1));
		return colorArray[randomNumber];
	}
	
	//阻止元素(在这里是指点击的那个复选框)的默认行为
	function testCheckBox(e){
		//阻止元素的默认行为
		window.event ? window.event.returnValue = false : e.preventDefault();
	}
	
</script>

</head>
<body onload="randomColor()">

	<div id="div1">
	<h2>演示阻止元素的默认行为-雪豹软件工作室</h2><br>
	爱好1上网<input type="checkbox" onclick="testCheckBox(event)">&nbsp;&nbsp;
	爱好2看书<input type="checkbox" onclick="testCheckBox(arguments[0])">&nbsp;&nbsp;
	<br> <br>
		<h2>演示event事件对象(应用案例,比如阻止冒泡)-雪豹软件工作室</h2>
		<br> <br>
		<h2>演示div层的visibility属性和display属性的区别</h2>
		<br> <br>
	</div>
	<br>
	<div class="myDiv3">
		<br> <input type="button" value="点击我-显示隐藏层(display的方式不会占位置)"
			onclick="showOrHideElement1('div1')"> <br> <br>
	</div>
	<br>你们去改变世界,我只想认真赚钱!
	<span id="span1">我是span1</span>在你存款没100万前,你所有的爱好跟理想都应该是赚钱!
	<span id="span2">我是span2</span>小伙伴们,当务之急我们要做的只有一件事情,那就是拼命努力认真的赚钱!
	<br>
	<br>
	<input type="button" value="点击我-显示隐藏span(display的方式不会占位置)"
		onclick="showOrHideElement1('span1')">
	<br>
	<br>

	<input type="button" value="点击我-显示隐藏span(visibility的方式始终会占位置)"
		onclick="showOrHideElement2('span2')">
	<br>
	<br>

	<div id="div2" class="myDiv">
		<br> <br> <input type="text" value="点击我执行点击事件代码,火狐不支持"
			onclick="alert(window.event.type);"> <br> <br> <input
			type="text" value="点击我执行点击事件代码,支持IE,以前不支持火狐,现在支持火狐了"
			onclick="alert(event.type);"> <br> <br> <input
			type="text"
			value="我们可以通过Function的一个属性argumengs获取到该匿名函数的第一个参数,而该参数就是事件对象"
			onclick="alert(arguments[0].type);"> <br> <br> <input
			type="text" value="把匿名函数打印出来" onclick="alert(arguments.callee);">
		<br> <br> <input type="text" value="调用方法获取事件对象,火狐不支持"
			onclick="testEvent()"> <br> <br> <input type="text"
			value="因为在Firefox中匿名函数是具有event参数" onclick="testFirefoxEvent()">
		<br> <br> <input type="text" value="通过显示的参数传入"
			onclick="testFirefoxEvent2(this,arguments[0])"> <br> <br>
	</div>
	<br>
	<div id="div3" class="myDiv2">
		<br> <br> <input type="button"
			value="点击我-显示隐藏层(visibility的方式始终会占位置)"
			onclick="showOrHideElement2('div2')"> <br> <br>
	</div>

</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值