第04课:Event-事件详解2
2016-11-13 23:04
218 查看
01 JS中级课程-事件捕获-1
1)事件捕获<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>11.事件捕获</title>
<style>
div {padding: 50px;}
#div1 {background: red;}
#div2 {background: blue;}
#div3 {background: green; position: absolute; top: 300px;}
</style>
<script>window.onload = function() {
var oDiv1 = document.getElementById('div1');
var oDiv2 = document.getElementById('div2');
var oDiv3 = document.getElementById('div3');
function fn1() {
alert(this.id);
}
/*oDiv1.onclick = fn1;
oDiv2.onclick = fn1;
oDiv3.onclick = fn1;*/
//false = 冒泡
//告诉div1,如果有一个出去的事件触发了你,你就去执行fn1这个函数
/*oDiv1.addEventListener('click', fn1, false);
oDiv2.addEventListener('click', fn1, false);
oDiv3.addEventListener('click', fn1, false);*/
//告诉div1,如果有一个进去的事件触发了你,你就去执行fn1这个函数
/*oDiv1.addEventListener('click', fn1, true);
oDiv2.addEventListener('click', fn1, true);
oDiv3.addEventListener('click', fn1, true);*/
oDiv1.addEventListener('click', function() {
alert(1);
}, false);
oDiv1.addEventListener('click', function() {
alert(3);
}, true);
oDiv3.addEventListener('click', function() {
alert(2);
}, false);
//
}
</script>
</head>
<body>
<div id="div1">
<div id="div2">
<div id="div3"></div>
</div>
</div>
</body>
</html>
02 JS中级课程-事件的取消-2
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>事件函数的取消</title> <script> function fn1() { alert(1); } function fn2() { alert(2); } //document.onclick = fn1; /* 第一种事件绑定形式的取消 */ //document.onclick = null; //取消 /* ie : obj.detachEvent(事件名称,事件函数); 标准 : obj.removeEventListener(事件名称,事件函数,是否捕获); */ /*document.attachEvent('onclick', fn1); document.attachEvent('onclick', fn2); document.detachEvent('onclick', fn1);*/ document.addEventListener('click', fn1, false); document.addEventListener('click', fn1, true); document.addEventListener('click', fn2, false); document.removeEventListener('click', fn1, false);</script> </head> <body> </body> </html>
03 JS中级课程-键盘事件-3
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>13.键盘事件</title> <script> /* onkeydown : 当键盘按键按下的时候触发 onkeyup : 当键盘按键抬起的时候触发 event.keyCode : 数字类型 键盘按键的值 键值 ctrlKey,shiftKey,altKey 布尔值 当一个事件发生的时候,如果ctrl || shift || alt 是按下的状态,返回true,否则返回false */ document.onkeydown = function(ev) { //alert(1); var ev = ev || event; console.log(ev.keyCode); } document.onclick = function(ev) { var ev = ev || event; alert(ev.ctrlKey); } </script> </head> <body> </body> </html>
留言本案例
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>14.留言本</title>
</head>
<body>
<input type="text" id="text1" />
<ul id="ul1"></ul>
<script type="text/javascript">
window.onload=function(){
var oText=document.getElementById('text1');
var oUl=document.getElementById('ul1');
//当表单元素中输入某些值的时候
oText.onkeyup=function(ev){
var ev=ev||event;
alert(this.value);
if (this.value!='') {
if(ev.keyCode==13){
var oLi = document.createElement('li');
oLi.innerHTML = this.value;
if ( oUl.children[0] ) {
oUl.insertBefore( oLi, oUl.children[0] );
} else {
oUl.appendChild( oLi );
}
}
}
}
}
</script>
</body>
</html>
键盘控制div移动
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>15.键盘控制div移动</title>
<style>
#div1 {
width: 100px;
height: 100px;
background: red;
position: absolute;
}
</style>
<script>
window.onload = function() {
var oDiv = document.getElementById('div1');
//不是所有元素都能够接收键盘事件,能够响应用户输入的元素,能够接收焦点的元素就能够接收键盘事件
//onkeydown : 如果按下不抬起,那么会连续触发
//定时器
document.onkeydown = function(ev) {
var ev = ev || event;
switch(ev.keyCode) {
case 37:
oDiv.style.left = oDiv.offsetLeft - 10 + 'px';
break;
case 38:
oDiv.style.top = oDiv.offsetTop - 10 + 'px';
break;
case 39:
oDiv.style.left = oDiv.offsetLeft + 10 + 'px';
break;
case 40:
oDiv.style.top = oDiv.offsetTop + 10 + 'px';
break;
}
}
}
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
04 js中级课程-事件默认行为_默认事件
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>16.事件默认行为</title> <script> /* 事件默认行为:当一个事件发生的时候浏览器自己会默认做的事情 怎么阻止? 当前这个行为是什么事件触发的,然后在这个事件的处理函数中使用return false; */ document.onkeydown = function() { return false; } //oncontextmenu : 右键菜单事件,当右键菜单(环境菜单)显示出来的时候触发 document.oncontextmenu = function() { //alert(1) return false; } </script> </head> <body style="height: 2000px;"> </body> </html>
自定义右键菜单
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>17.自定义右键菜单</title> <style> #div1 { width: 100px; height: 200px; border: 1px solid red; position: absolute; display: none; } </style> <script> window.onload = function() { var oDiv = document.getElementById('div1'); document.oncontextmenu = function(ev) { var ev = ev || event; oDiv.style.display = 'block'; oDiv.style.left = ev.clientX + 'px'; oDiv.style.top = ev.clientY + 'px'; return false; } document.onclick = function() { oDiv.style.display = 'none'; } } </script> </head> <body> <div id="div1"></div> </body> </html>
相关文章推荐
- NET多线程同步方法详解(六):事件(ManualResetEvent/AutoResetEvent)
- [原创] C#委托(Delegate)事件(Event)应用详解
- ALSA声卡驱动中的DAPM详解之七:dapm事件机制(dapm event)
- android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()详解二之小秘与领导的故事
- [妙味DOM]第四课:Event-事件详解2
- Javascrip [window.Event] 事件详解....
- Event事件详解
- android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()详解二之小秘与领导的故事
- ALSA声卡驱动中的DAPM详解之七:dapm事件机制(dapm event)
- android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()详解
- javascript中事件event详解
- window.event 对象详解 以及鼠标 组合按键的响应事件
- jquery event事件详解(转:http://www.cnblogs.com/zhangsir/articles/1085295.html)
- android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()详解二之小秘与领导的故事
- Mutex与Event控制互斥事件的使用详解
- NET多线程同步方法详解(六):事件(ManualResetEvent/AutoResetEvent)
- C#委托(Delegate)事件(Event)应用详解[FreeDownload]
- jQueryUI Autocompelete事件Event详解
- ALSA声卡驱动中的DAPM详解之七:dapm事件机制(dapm event)
- ALSA声卡驱动中的DAPM详解之七:dapm事件机制(dapm event)