静态绑定

直接把事件写在标签元素中

  1. <div id="div" onclick="fun()">click</div>
  2. <script>
  3. function fun(){
  4. console.log("fun函数");
  5. }
  6. </script>
  1. <div id="div" onclick="fun(this)">click</div>
  2. <script>
  3. // 传DOM元素
  4. function fun(self){ // 形参不能是this;
  5. console.log("fun函数");
  6. console.log(self); // self: dom对象 <div onclick="fun(this)">click</div>
  7. }
  8. </script>

动态绑定

  1. <span id="sp1">span</span>
  2. <script>
  3. var ele = document.getElementById("sp1");
  4. ele.onclick = function () { //绑定事件:dom.on事件
  5. console.log(this); // this直接用: <span id="sp1">span</span>
  6. console.log(typeof this) // object
  7. };
  8. </script>

一个元素本身可以绑定多个不同的事件, 但是如果多次绑定同一个事件,则后面的事件代码会覆盖前面的事件代码

多个标签绑定事件

  1. <ul>
  2. <li>111</li>
  3. <li>222</li>
  4. <li>333</li>
  5. </ul>
  6. <script>
  7. var eles = document.querySelectorAll("ul li");
  8. for(var i=0;i<eles.length;i++){
  9. eles[i].onclick = function (){
  10. console.log(this.innerHTML)
  11. // console.log(eles[i].innerHTML) // 结果?
  12. }
  13. }
  14. </script>