js-事件與行爲

事件:用戶與計算機進行交互(鍵盤、鼠標)javascript

事件分類:鼠標類,鍵盤類,表單類,其它類css

  鼠標類:java

    鼠標單擊事件:click;dom

    鼠標雙擊事件:dbclick;函數

    鼠標移入事件:mouseover;spa

      鼠標按下鬆開事件:mouseup;code

    鼠標按下時發生事件:mousedown;orm

    鼠標移出事件:mouseout ;對象

      鼠標移動時發生事件:mousemove;blog

  鍵盤類:

    鍵盤按下事件:keydown;

    鍵盤彈起事件:keyup;

  表單類:

    獲取焦點時:focus;

    失去焦點時:blur;

    內容改變時:change;

    輸入內容時:input;

  其餘類:

    資源加載:load;(等待全部資源(script標籤全部內容及圖片)加載完成後執行)

 

註冊事件的方式:

(1)經過 dom 元素的屬性註冊事件

    經過對象名.事件名 = function(){}    -->匿名函數

  eg:

 <input type="button" id="btn">點我</button>
    <script>
        // 獲取 dom 元素
        var btn = document.getElementById('btn');
        // 經過 dom 元素的屬性註冊事件
        btn.onclick = function(){          
            console.log("hello word!");
        }
    </script>

(2)經過標籤的屬性註冊事件

 <input type="button" onclick="fun()">點我</button>
    <script> 
       function  fun(){          
            console.log("hello word!");
        }
    </script>

 

事件監聽器:

    addEventListener(事件類型,處理函數,是否捕獲)           綁定、捕獲事件

    removeEventListener(事件類型,處理函數,是否捕獲)     解除綁定

    (是否捕獲這個參數是boolean類型,默認爲false:冒泡;true爲捕獲)

<style type="text/css">
            div{
                border: 1px solid #000;
            }
            #d1{
                width: 700px;
                height: 700px;
            }
            #d2{
                width: 500px;
                height: 500px;
            }
            #d3{
                width: 300px;
                height: 300px;
            }
</style>

<div id="d1">
    中國
    <div id="d2">
        湖北
        <div id="d3">武漢</div>
    </div>
</div>

<script type="text/javascript">
var d1 = document.getElementById("d1");
var d2 = document.getElementById("d2");
var d3 = document.getElementById("d3");
d1.addEventListener("click",function(event){
     var event = event || window.event;
     alert("中國")
     event.stopPropagation();    //阻止事件冒泡    W3C標準(兼容性的問題:IE8及如下)
     event.cancelBubble = true;  //阻止事件冒泡      IE
},true)
d2.addEventListener("click",function(){
      alert("湖北")
},true)
d3.addEventListener("click",function(){
      alert("武漢")
 },true)
</script>

//結果是隻有中國彈出來,其它沒有

事件冒泡:系統默認,由最層向最外層進行傳遞

事件捕獲:經過手動更改,由最外層向最裏層進行傳遞

阻止事件冒泡:stopPropagation()

 

行爲:當有用戶操做時所帶來的後果

例如:(1)form表單點擊提交按鈕提交後,帶來的後果是表單提交了

   (2)a標籤點擊之後,帶來的後果是頁面跳轉

   (3)當你在網頁上點鼠標右鍵時,帶來的後果是會出現一個右鍵菜單選項

  以上這些行爲都是默認行爲,默認行爲也稱爲默認事件,有時候咱們是不須要使用這些默認行爲的,此時咱們就得想辦法阻止默認行爲

 

 阻止默認行爲有三種方法:針對註冊事件

  (1)return false;

<a href="http://www.baidu.com" id="a1">百度</a>
<script type="text/javascript">
var a1 = document.getElementById("a1");
a1.onclick = function(){   
        return false     //經常使用的

}
</script>

 

  (2)preventDafault();

 

<a href="http://www.baidu.com" id="a1">百度</a> 
<script type="text/javascript">
   a1.onclick = function(){
       var event = event || window.event     event.preventDefault(); //W3C標準
}
</script>

 

  (3)returnValue = false;

<a href="http://www.baidu.com" id="a1">百度</a> 
<script type="text/javascript">
   a1.onclick = function(){
       var event = event || window.event
        event.returnValue = false //IE8及如下使用
}
</script>

若是事件綁定是用addEventListener來實現的,那阻止默認行爲必須用e.preventDefault=true。

相關文章
相關標籤/搜索