JavaScript 三種綁定事件方式之間的區別

JavaScript三種綁定事件的方式:函數

  1. <div id="btn" onclick="clickone()"></div> //直接在DOM裏綁定事件spa

    <script>事件

     function clickone(){ alert("hello"); }ip

    </script>get

  2. <div id="btn"></div>io

    <script>event

     document.getElementById("btn").onclick = function(){ alert("hello"); } //腳本里面綁定function

    </script>匿名函數

  3. <div id="btn"></div>cli

    <script>

     document.getElementById("btn").addeventlistener("click",clickone,false); //經過偵聽事件處理相應的函數

     function clickone(){ alert("hello"); }

    </script>

那麼問題來了,1 和 2 的方式是咱們常常用到的,那麼既然已經有兩種綁定事件的方法爲何還要有第三種呢?答案是這樣的:

用 "addeventlistener" 能夠綁定屢次同一個事件,且都會執行,而在DOM結構若是綁定兩個 "onclick" 事件,只會執行第一個;在腳本經過匿名函數的方式綁定的只會執行最後一個事件。

  1. <div id="btn" onclick="clickone()" onclick="clicktwo()"></div> 

    <script>

     function clickone(){ alert("hello"); } //執行這個

     function clicktwo(){ alert("world!"); }

    </script>

  2. <div id="btn"></div>

    <script>

     document.getElementById("btn").onclick = function(){ alert("hello"); }

     document.getElementById("btn").onclick = function(){ alert("world"); } //執行這個

    </script>

  3. <div id="btn"></div>

    <script>

     document.getElementById("btn").addeventlistener("click",clickone,false);

     function clickone(){ alert("hello"); } //先執行

     document.getElementById("btn").addeventlistener("click",clicktwo,false);

     function clicktwo(){ alert("world"); } //後執行

    </script>

以上;可根據場景靈活選擇。

相關文章
相關標籤/搜索