1. 程式人生 > >113_js筆記15_事件的dom操作

113_js筆記15_事件的dom操作

HTML DOM 使 JavaScript 有能力對 HTML 事件做出反應

一,標籤的預設事件屬性

  1. 當用戶滑鼠點選,按下,擡起:onmousedown、onmouseup 以及 onclick 事件
    1. onClick事件寫法1:
      //標籤
      <button onclick="displayDate()">1,onClick點選</button>
      
      //事件
       function displayDate(){
              document.getElementById("demo").innerHTML=Date();
       }
      
      onClick事件寫法2:
      //標籤
      <button id="myBtn">1,onClick點選</button>
      //事件
       document.getElementById("myBtn").onclick=function(){displayDate()};
       function displayDate(){
              document.getElementById("demo").innerHTML=Date();
       }
      
      新增多個事件:按下,擡起,點選
      <div onmousedown="mDown(this)" onmouseup="mUp(this)" onclick="mClick(this)" 
      >按下,擡起,點選</div>
         function mDown(obj){
      	        obj.style.backgroundColor = 'red';
          }
         function mUp(obj){
                  obj.style.backgroundColor = 'yellow';
          }
         function mClick(obj){
                  obj.style.backgroundColor = 'blue';
              }

       

  2. 當輸入欄位被改變時:onchange 事件
    1. // 標籤
       <input type="text" id="input" onchange="myFunction()">
      
      // onchange 事件
          function myFunction(){
              var x=document.getElementById("input");
              x.value=x.value.toUpperCase();
              };

       

  3. 當網頁已載入時:onload 和 onunload 事件
    1. // 事件寫在body標籤裡邊
      <body onload="checkCookies()">
      
      // onload 和 onunload 事件
          function checkCookies(){
              if (navigator.cookieEnabled==true){
                  alert("Cookies 可用")
              }
              else{
                  alert("Cookies 不可用")
              };
          }

       

  4. 當滑鼠移動到元素上和離開時:onmouseover 和 onmouseout 事件
    1. //標籤
          <div onmouseover="mOver(this)" onmouseout="mOut(this)" 
      >滑鼠放在上邊和離開</div>
      
      // onmouseover 和 onmouseout 事件
          function mOver(obj){
      	    obj.innerHTML="Thank You"
              }
              function mOut(obj){
      	    obj.innerHTML="Mouse Over Me"
              }

       

二,新增和移除事件的控制代碼

  1. 新增事件: addEventListener
    1. 控制代碼寫在語句中
      1. // 標籤
        <button id="myBtn2">新增事件控制代碼1</button>
        // 新增事件控制代碼1:直接寫在語句中
                document.getElementById("myBtn2").addEventListener("click", function(){
            alert("Hello World!");});

         

    2. 控制代碼寫在函式中
      1.  // 標籤
        <button id="myBtn3">新增事件控制代碼2</button>
         // 新增事件控制代碼2:寫在函式中
                document.getElementById("myBtn3").addEventListener("click", myFunction2);
                function myFunction2() {
                    alert ("Hello World!");
                }

         

    3. 事件的冒泡和捕獲
      1. //標籤
        <div id="myDiv" style="background-color:aquamarine">
        	<p id="myP">冒泡演示:先內後外</p>
        </div><br>
        <div id="myDiv2" style="background-color:gold;">
        	<p id="myP2">捕獲演示:先外後內 </p>
        </div>
        
        //事件
              /*
                事件的冒泡:內部元素的事件會先被觸發,然後再觸發外部元素
                事件的捕獲,外部元素的事件會先被觸發,然後才會觸發內部元素的事件
                */ 
                document.getElementById("myP").addEventListener("click", function() {
                    alert("你點選了 P 元素!");
                }, false);
                document.getElementById("myDiv").addEventListener("click", function() {
                    alert(" 你點選了 DIV 元素 !");
                }, false);
                document.getElementById("myP2").addEventListener("click", function() {
                    alert("你點選了 P2 元素!");
                }, true);
                document.getElementById("myDiv2").addEventListener("click", function() {
                    alert("你點選了 DIV2 元素 !");
                }, true);

         

  2. 移除事件:removeEventListener()