JS模块六(事件与节点)
键盘事件
//onkeydown 按键按下时弹出
//onkeyup 按键松开
//onkeypress按下并松开
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="text" id="" value="" onkeypress="show(event)">
</body>
</html>
<script type="text/javascript">
function show(e){
alert(e.keyCode);
}
</script>
鼠标事件
//onmousedown 鼠标按下
//onmouseup 鼠标松开
//onmouseover 鼠标移上
//onmouseout 鼠标移出
//e.button e.which
//0左键 1滑轮 2右键
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
div{
height: 33px;
width: 77px;
background: black;
}
</style>
</head>
<body>
<div id="d1" onmousedown="show(this)" onmouseup="show1(this)" onmouseout="show2(this)" onmouseover="show3(this)"></div>
</body>
</html>
<script type="text/jscript">
function show(obj){
obj.style.backgroud="gray";
}
function show1(obj){
obj.style.backgroud="brown";
}
function show2(obj){
obj.style.backgroud="blue";
}
function show3(obj){
obj.style.backgroud="green";
}
</script>
加载与卸载
//onload 一张页面或图片加载完成
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
window.onload = function() {
var btn = document.getElementsByTagName('button')[0];
alert(btn);
}
</script>
</head>
<body>
<button type="button">一树梨花</button>
</body>
</html>
切换事件
onchange 改变下拉选项时监听
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<select name="" onchange="show()">
<option>333</option>
<option>777</option>
<option>111</option>
</select>
</body>
</html>
<script type="text/jscript">
function show(obj) {
alert("已切换")
}
</script>
选择事件
onselect 选中文字
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="text" name="" id="" value="这是默认值" onselect="show()"/>
</body>
</html>
<script type="text/jscript">
function show(obj) {
alert("选中了")
}
</script>
事件对象
//事件对象中 有此属性 也能获取到绑定了该事件的元素对象
//currentarget 获取的是绑定了该事件的那个元素对象
//traget 获取的是触发了该事件的元素对象
//type 获取事件类型
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.wai {
width: 333px;
height: 177px;
background: #000000;
}
</style>
</head>
<body>
<div class="wai" onclick="show(event)">
<button type="button">xx</button>
</div>
</body>
</html>
<script type="text/jscript">
function show(e) {
var m = e.target;
var mm = e.currentarget;
m.style.background = "blue";
alert(e.type);
}
</script>
事件冒泡
e.stopPropagation(); 阻止事件冒泡
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.o1 {
width: 333px;
height: 177px;
background: #5eff45;
}
.o2 {
width: 222px;
height: 177px;
background: #38beaf;
}
.o3 {
width: 111px;
height: 177px;
background: #910838;
}
</style>
</head>
<body>
<div class="o1" onclick="show1(event)">
1
<div class="o2" onclick="show2(event)">
2
<div class="o3" onclick="show3(event)">
3
</div>
</div>
</div>
</body>
</html>
<script type="text/jscript">
function show1(e){
e.stopPropagation();
alert(111111);
}
function show2(e){
e.stopPropagation();
alert(222222);
}
function show3(e){
e.stopPropagation();
alert(333333);
}
</script>
阻止表单提交
e.preventDefault(); //阻止元素的默认行为
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="#" method="get" onsubmit="tijiao(event)">
<input type="text" name="username" value="" />
<br />
<input type="submit" value="提交" />
</form>
</body>
</html>
<script type="text/jscript">
function tijiao(e) {
e.preventDefault(); //阻止元素的默认行为
alert("异步提交");
}
</script>
onmouseenter与mouseenter的区别
节点操作
document.body.firstChild; //注意空文本
document.body.firstChild.nextSibling;//下一个节点 兄节点
document.body.firstChild.nextSibling.previousSibling;//上一个节点 弟节点
document.body.firstElementChild; 第一个元素
document.body.lastElementChild; 最后一个元素
o1.nextElementSibling 下一个元素
o1.nextElementSibling.previousElementSibling 上一个元素
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div class="o1" onclick="show1(event)">
<div class="o2" onclick="show2(event)">
<div class="o3" onclick="show3(event)">
3xc3
</div>
</div>
</div>
<h1>33333</h1>
<h2>33333</h2>
<p>33333</p>
</body>
</html>
<script type="text/jscript">
var a = document.all;
var obj = document.body.firstChild; //注意空文本
alert(obj);
var objc = document.body.firstChild.nextSibling;
alert(objc);//下一个节点 兄节点
var objcx = document.body.firstChild.nextSibling.previousSibling;
alert(objcx);//上一个节点 弟节点
var o1=document.body.firstElementChild;
alert(o1);
alert(o1.nextElementSibling);
var o2=document.body.lastElementChild;
alert(o2);
alert(o1.nextElementSibling.previousElementSibling);
</script>
待续…