on事件和addevent事件的區(qū)別

on事件
 function fn1(){alert(1)};
 function fn2(){alert(2)};
document.onclick=fn1();
document.onclick=fn2(); 

只會彈出2

  • 使用on事件,給標簽加多個事件的時候后面的會覆蓋前面的。
 function fn1(){alert(1)};
 function fn2(){alert(2)};
 document.addEventListener('onclick',fn1()); //1        
  document.addEventListener('onclick',fn2()); //2

.addEvent事件監(jiān)聽可以給一個標簽添加多個事件,并且之前的不會被覆蓋掉

  • addevent里面可以傳遞三個參數:
    • 1.addevent 里面的參數,第一個是傳入對應的事件的類型(注意不要加on)
    • 2.addevent 第二個參數,就是函數的回調
    • 3.bool類型取值,如果是false(默認就是),事件的觸發(fā)機制就會按照冒泡(從下往上),如果是true,就會按照事件捕獲,從上往下
      例如:
  <style>
     .div1{
           width: 300px;
            height: 300px;
            background: red;
            margin: 100px auto;  }
        .div2{
            width: 200px;
            height: 200px;
            background: blue;  }
        .div3{
            width: 100px;
            height: 100px;
            background: green;
        }
    </style>
    <script>
        window.onload=function(){

            div1.addEventListener("click",function(){
                alert(1);
            } ,false);
            div1.addEventListener("click",function(){
                alert(2)
            } ,true);
            div3.addEventListener("click",function(){
                alert(3)
            } ,false);
        }
    </script>
</head>
<body>
<div class="div1">
          <div class="div2">
                 <div class="div3"></div>
          </div>
</div>
</body>

給div1,div3 添加點擊事件,依次彈出2,3,1

 1. div1.addEventListener("click",function(){
                alert(1);
            } ,false);
 2. div1.addEventListener("click",function(){
                alert(2)
            } ,true);
  3.div3.addEventListener("click",function(){
                alert(3)
            } ,false);

分析代碼:從上往上看代碼,點擊div1, 有一個事件進來,為false所以沒反映,不會彈;第二段代碼中為true,div1捕獲到事件彈出2;第三段代碼,false同樣沒反應。 事件出去觸發(fā)第三段代碼,彈出3;接著往上走,走到第一段代碼彈出1

  • false:冒泡,就是如果有一個出去的事件觸發(fā)了你,你就去執(zhí)行這個函數
  • true: 捕獲,如果有一個進來的事件觸發(fā)了你,你就去執(zhí)行這個函數
11.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • jQuery基礎 什么是JQ?一個優(yōu)秀的JS庫,大型開發(fā)必備JQ的好處?一簡化JS的復雜操作二不再需要關心兼容性三...
    幺七閱讀 955評論 0 2
  • 事件冒泡和事件捕獲是什么? 在dom2級中定義了兩個方法分別是:addEventListener 和 remove...
    ale_thehead閱讀 2,635評論 2 2
  • 什么是事件: 我們可以簡單的把事件理解為瀏覽器的感知系統(tǒng)。比如說:他可以感覺到用戶是否點擊(click)了頁面、鼠...
    張松1366閱讀 6,826評論 1 6
  • 通過jQuery,您可以選取(查詢,query)HTML元素,并對它們執(zhí)行“操作”(actions)。 jQuer...
    枇杷樹8824閱讀 670評論 0 3
  • 第一本從頭看到尾的英文原版小說。因為是小說,有情節(jié)有故事,而且詞匯相對來說比較簡單,所以在課余時間,三四天就可以看...
    薇言閱讀 826評論 0 1