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


1 直接在html標簽中綁定

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

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

頁面全部加載完之后再去解析加載里面的內容。而button的點擊事件在解析button的時候沒有被定義。


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:捕獲;兩者區別在於,冒泡觸發是從內向外的,捕獲事件是從外向內的,點擊事件的順序是從外到內,在從內到外,給事件設置不同的事件監聽方式使他在不同的階段執行

  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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM