body> <!-- 在html頁面中添加事件屬性 - 屬性值爲函數名 --> <button onclick="sclick()">按鈕</button> <script> /* 在html頁面設置事件屬性 該事件做用在當前元素,不能綁定多個 而且沒能使HTML頁面結構與JavaScript之間存在有效分離 */ /* 設置事件處理函數 */ function sclick() { console.log( '娃哈哈哈哈哈哈哈' ); } </script> </body>
<body> <button>按鈕</button> <button>按鈕</button> <button>按鈕</button> <button>按鈕</button> <script> /* DOM對象的事件屬性 onclick = function() 該事件能夠綁定多個元素 也作到了HTML結構與JavaScript的有效分離 */ /* 先定位元素位置 - 注意類數組的調用值 */ var b1 = document.getElementsByTagName( 'button' )[0]; /* 設置鼠標點擊事件 */ b1.onclick = function () { console.log( '嘻嘻嘻嘻嘻嘻嘻之郎' ); }; /* 多個相同元素綁定一個事件 */ var b2 = document.getElementsByTagName( 'button' ); /* 先遍歷類數組獲取到每個元素 */ for ( var bt = 0; bt < b2.length; bt++ ) { var bs = b2[bt]; /* 在進行事件綁定 */ bs.onclick = function () { console.log( '嘻嘻嘻嘻嘻嘻嘻之郎' ); } } </script> </body>
該方法有瀏覽器兼容問題html
IE8 提供瞭解決方法數組
<body> <button>按鈕</button> <button>按鈕</button> <button>按鈕</button> <script> /* 事件監聽器 addEventListener()「括號中先寫事件名‘沒有on’,在寫事件事件處理函數,在寫布爾值‘可省略’」 能夠爲單個元素綁定多個事件 */ /* 先定位指定元素的位置 */ var b1 = document.getElementsByTagName( 'button' )[0]; /* 設置事件監聽器 */ b1.addEventListener( 'click', function() { console.log( '我特啊呦賭贏' ); } ); /* 多個相同元素綁定一個事件 */ var b2 = document.getElementsByTagName( 'button' ); /* 先遍歷類數組獲取到每個元素 */ for ( var bs = 0; bs < b2.length; bs++ ) { var bx = b2[bs]; /* 設置事件監聽器 */ bx.addEventListener('click', function () { console.log('我特啊呦賭贏'); }); } /* 事件監聽器存在瀏覽器兼容問題 attachEvent():IE 8 專門的事件監聽器 括號中先寫事件名‘有on’,在寫事件事件處理函數,在寫布爾值‘可省略’ */ b1.attachEvent( 'onclick', function () { console.log( '我特啊呦弄啥嘞!...' ); } ); </script> </body>
<body> <button id="b1">按鈕</button> <script> /* 移除綁定事件 removeEventListener() 括號中先寫事件名‘沒有on’,在寫事件處理函數名(用於指定目標事件) 只能做用在事件監聽器上 */ var b = document.getElementById( 'b1' ); /* 單獨寫事件處理函數並命名 - 方便指定目標 */ function btn() { console.log( '我特啊呦弄啥嘞!...' ); } /* 對指定的目標事件進行添加 */ b.addEventListener( 'click', btn ); /* 對指定的目標事件進行移除 */ b.removeEventListener( 'click', btn ); /* 移除綁定事件有兼容問題 */ /* 專門提供瞭解決IE 8 的問題 */ b.detachEvent( 'click', btn ); </script> </body>
Event事件對象瀏覽器
<body> <button id="b1">按鈕</button> <script> /* Event事件對象 全部設置事件屬性的方式都能使用 該對象存在於事件處理函數的參數中 */ var b = document.getElementById( 'b1' ); b.addEventListener( 'click', function( event ) { console.log( event ); } ); /* Event事件對象具備兼容問題 該事件對象被添加到 window 對象中 */ b.attachEvent( 'onclick', function( event ) { // event事件對象固定寫法 var bevent = event || window.event; console.log( bevent ); } ); </script> </body>
<body> <a id="a1" href="事件對象.html">這是連接</a> <script> /* 阻止默認行爲 event.preventDefault() 表示阻止目標元素所綁定的事件運行 */ /* 定位目標元素的位置 */ var a = document.getElementById( 'a1' ); /* 綁定事件屬性 */ /*a.addEventListener( 'click', function(event) { /!* 阻止事件的運行 *!/ event.preventDefault(); } );*/ /* return false語句 也具備阻止默認行爲的功能 該語句以後的代碼將不會被執行 建議放置在事件處理函數的最後面 該語句不能做用在 addEventListener()中 */ a.onclick = function ( event ) { event.preventDefault(); return false; } </script> </body>
<body> <button id="b1">按鈕</button> <script> var b = document.getElementById( 'b1' ); b.addEventListener( 'click', function ( event ) { console.log( event.pageX, event.pageY ); } ); </script> </body>
<body> <button id="b2">按鈕</button> <script> var b = document.getElementById( 'b2' ); b.addEventListener( 'click', function ( event ) { console.log( event.clientX, event.clientY ); } ); </script> </body>
<body> <button id="b3">按鈕</button> <script> var b = document.getElementById( 'b3' ); b.addEventListener( 'click', function ( event ) { console.log( event.screenX, event.screenY ); } ); </script> </body>
<body> <button id="b4">按鈕</button> <script> var b = document.getElementById( 'b4' ); b.addEventListener( 'click', function ( event ) { console.log( event.offsetX, event.offsetY ); } ); </script> </body>