js中的事件綁定的三種方式

1 直接在html標籤中綁定

<button onclick = "show()"></button>javascript

注意當你引用的js代碼是包裹在window.onload中的形式的時候,show()是會報沒有定義的錯誤,緣由在於window.onload是在

頁面所有加載完以後再去解析加載裏面的內容。而button的點擊事件在解析button的時候沒有被定義。html


2 用js的對象進行綁定事件

  1. <body>
  2. <buttonid="btn1">點擊1</button>
  3. </body>
  4. <script>
  5. window.onload =function(){
  6. console.log("onload事件執行...");
  7. var oBtn = document.getElementById('btn1');
  8. oBtn.onclick =function(){
  9. console.log('btn1的點擊事件被觸發...');
  10. }
  11. }
  12. </script>

3 用事件監聽的方式

  1. <script>
  2. window.onload =function(){
  3. console.log('onload執行...');
  4. var oBtn = document.getElementById('btn1');
  5. oBtn.addEventListener('click',function(){
  6. console.log('btn1的點擊監聽事件被觸發');
  7. })
  8. }
  9. </script>

4 事件監聽的捕獲和冒泡方式

addEventListener(‘觸發事件’,’執行函數’,boolean),boolean默認爲false

添加事件監聽的第三個參數,flase:冒泡 ,true:捕獲;二者區別在於,冒泡觸發是從內向外的,捕獲事件是從外向內的,點擊事件的順序是從外到內,在從內到外,給事件設置不一樣的事件監聽方式使他在不一樣的階段執行java

  1. <div id ='div1'>
  2. <div id="div2">
  3. <button id ='btn1'>點擊1</button>
  4. <button id ='btn2'>點擊2</button>
  5. </div>
  6. </div>
  7. <script>
  8. window.onload =function(){
  9. console.log('onload執行...');
  10. document.getElementById('btn1').addEventListener('click',function(){
  11. console.log('btn1的點擊監聽事件被觸發');
  12. },false);
  13. document.getElementById('btn2').addEventListener('click',function(){
  14. console.log('btn2的點擊監聽事件被觸發');
  15. },true);
  16. document.getElementById('div1').addEventListener('click',function(){
  17. console.log('div1的點擊監聽事件被觸發');
  18. },false);
  19. document.getElementById('div2').addEventListener('click',function(){
  20. console.log('div2的點擊監聽事件被觸發');
  21. },true);
  22. }
  23. </script>

5 阻止事件冒泡

經過e.stopPropagation();阻止冒泡
  1. document.getElementById('btn1').addEventListener('click',function(e){
  2. e.stopPropagation();
  3. console.log('btn1的點擊監聽事件被觸發');
  4. },false);
相關文章
相關標籤/搜索