笔记放在Github上,点击访问下载
Javascript与HTML之间的交互是通过事件实现的。 事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。
形如a标签的默认跳转,提交submit按钮的默认提交等成为默认行为。 IE8以上:event.preventDefault() IE8及以下:event.returnValue=false;
if(event.preventDefault){ event.preventDefault(); }else { event.returnValue = false; }将事件统一绑定给共同的祖先元素
var lis = document.getElementsByTagName('li'); lis = Array.prototype.slice.call(lis,0); var ul = document.getElementsByTagName('ul')[0]; ul.onclick = function(event){ if(event.target.nodeName==='LI'){ lis.forEach(function(item){ item.style.backgroundColor = '#fff'; }); event.target.style.backgroundColor = 'red'; } }响应某个事件的函数为事件处理程序,事件处理程序以"on"开头(onclick,onload)
HTML事件处理程序 <input type="button" value="clickMe" onclick = "alert('is clicked')"> <input type="button" value="clickMe" onclick = "showMsg()"> <script type="text/javascript"> function showMsg(){ alert("is clicked"); } </script> DOM0级事件处理程序 通过Javascript指定事件处理程序的传统方式,将一个函数赋值给一个事件处理程序属性。 var btn = document.getElementById("btn"); btn.onclick = function(){ alert('cliked'); } btn.onclick = null; //删除事件处理程序 DOM2级事件处理程序事件对象的属性均为只读属性 在事件处理程序内部,对象this始终等于currentTarget值,即当前正在处理程序的目标
1.在IE8及以下,不支持event,需要使用window.event 2.在使用DOM0级添加事件时,event对象可以作为window对象的一个属性。
div.onclick = function(){ console.log(window.event);//[object Event] }3.在使用attachEvent添加事件时,event对象会作为参数传入事件处理函数中
div.attachEvent('onclick',function(event){ alert(window.event);//[object Event] });