<body> <input type="text" onfocus="doFocus(event)">//這裏的參數必須寫event(也就是window.event),若是不寫則console的結果就是undefined。 <script> function doFocus(ev){ console.log(ev);//類型是focusEvent } </script> </body> /*onblur(失去焦點時觸發)同onfocus(獲得焦點時觸發)都是 焦點事件(focusEvent)*/
target 具體觸發事件的元素(無論是什麼類型的事件均可以用。用target能夠獲得具體點了哪個元素)css
具體代碼以下(點document中的任何元素都會變綠): document.onclick=function(ev){ ev.target.style.backgroundColor="green"; } //能夠給新添加的元素綁定事件 代碼: css樣式: <style> ul{樣式};li{樣式};li.current{樣式}; </style> html文件: <ul class="myList">多個<li></li></ul> <button onclick="addLi()">添加</button> js文件: var myList=document.getElementById("myList"); var lis=myList.getElementsByTagName("li"); //循環 for(var i=0;i<lis.length;i++){ lis[i].onmouseover=function(){this.className="current";} lis[i].onmouseout=function(){this.className="";} } //添加li function addli(){ var liObj=document.createElement("li");//建立元素 liObj.innerHTML="我是新的li"; myList.appendChild(liObj);//添加 } /*新添加以後的效果:點擊button按鈕會新添加li,可是新添加的li當鼠標滑過期不會改變顏色,緣由是:綁定事件時,新的元素尚未建立。*/ //解決方案以下: myList.onmouseover=function(ev){var e=ev||window.event; var currentEle=e.target;//獲得具體觸發的那個元素 //console.log(currentEle.tagName);//獲得當前鼠標滑過的元素名 if(currentEle.tagName==="LI"){currentEle.className="current";} } myList.onmouseout=function(ev){var e=ev||window.event;//兼容IE var currentEle=e.target;//獲得具體觸發的那個元素 //console.log(currentEle.tagName);//獲得當前鼠標滑過的元素名 if(currentEle.tagName==="LI"){currentEle.className="";} } /*分析以下:把事件綁定給ul,經過target來得到當前鼠標滑過的元素,因li是ul的子元素,因此滑過li就等於滑過了ul*/
IE8以及如下不存在事件的捕獲,只有事件的冒泡。html
preventDefault() 阻止默認動做瀏覽器
<a href="http://www.so.com" onclick="fn(event)">我是超連接</a> <script> function fn(ev){ alert("彈出"); ev.preventDefault();//阻止a的默認動做,也就是說不會跳轉到http://www.so.com。。。 } </script>