概要

  1. 事件处理程序
    1. HTMl事件处理
    2. DOM 0级事件处理
    3. DOM 2级事件处理
  2. 事件类型之鼠标事件
  3. Event事件对象

    1、事件处理程序

    a、HTML事件处理程序

    ```javascript

function clickHandle() { console.log(“HTMl事件处理程序”); }

  1. 优点:书写简单<br />缺点:文件不分离,可复用性低
  2. <a name="QYnyn"></a>
  3. ### b、DOM 0级事件处理
  4. ```javascript
  5. <button id="btn2">按钮2</button>
  6. var btn2 = document.getElementById("btn2");
  7. btn2.onclick = function () {
  8. console.log("DOM 0级事件处理程序");
  9. }
  10. btn2.onclick = function () {
  11. console.log("DOM 0级事件处理程序2222");
  12. }

优点:代码可分离,复用性高
缺点:事件会被覆盖

c、DOM 2级事件处理(推荐)

  1. <button id="btn">按钮</button>
  2. var btn = document.getElementById("btn");
  3. btn.addEventListener("click", demo);
  4. function demo() {
  5. console.log("DOM 2级事件处理程序");
  6. }
  7. btn.addEventListener("click", demo2);
  8. function demo2() {
  9. console.log("DOM 2级事件处理程序222");
  10. }
  11. // 取消事件
  12. btn.removeEventListener("click", demo2);

优点:事件不会覆盖
缺点:格式复杂

2、事件类型之鼠标事件

  1. /**
  2. * click:按下⿏标时触发。
  3. * dblclick:在同⼀个元素上双击⿏标时触发。
  4. * mousedown:按下⿏标键时触发。
  5. * mouseup:释放按下的⿏标键时触发。
  6. * mousemove:当⿏标在⼀个节点内部移动时触发。当⿏标持续移动时,该事件会连续触发。
  7. 为了避免性能问题,建议对该事件的监听函数做⼀些限定,⽐如限定⼀段时间内只能运⾏⼀次。
  8. * mouseover:⿏标进⼊⼀个节点时触发
  9. * mouseout:⿏标离开⼀个节点时触发
  10. */
  11. <div class="box" id="box"></div>
  12. var box = document.getElementById("box");
  13. // 点击事件
  14. box.addEventListener("click", function () {
  15. console.log("click点击事件");
  16. });
  17. // 双击事件
  18. box.addEventListener("dblclick", function () {
  19. console.log("dbclick双击事件");
  20. });
  21. // 鼠标按下事件
  22. box.addEventListener("mousedown", function () {
  23. console.log("mousedown鼠标按下事件");
  24. });
  25. // 鼠标释放事件
  26. box.addEventListener("mouseup", function () {
  27. console.log("mouseup鼠标释放事件");
  28. });
  29. // 鼠标移动事件
  30. box.addEventListener("mousemove", function () {
  31. console.log("mousemove鼠标移动事件");
  32. });
  33. // 鼠标滑进事件
  34. box.addEventListener("mouseover", function () {
  35. console.log("mouseover鼠标滑进事件");
  36. });
  37. // 鼠标滑出事件
  38. box.addEventListener("mouseout", function () {
  39. console.log("mouseout鼠标滑出事件");
  40. });

3、Event事件对象

事件发生以后,会产生一个事件对象,作为参数传给监听函数。浏览器原生提供一个Event对象,所有的时间都是这个对象的实例。

  1. <button id="btn">按钮</button>
  2. var btn = document.getElementById("btn");
  3. btn.addEventListener("click", function (event) {
  4. console.log("点击");
  5. event.target.innerHTML = "点击之后的按钮";
  6. console.log(event);
  7. });