jQuery事件綁定、鼠標事件


一、事件綁定

1. $("target").bind/unbind("事件名",handler)

$("target").bind/unbind("事件名",handler) 
    同addEventListener()
    .unbind三種重載: 
        .unbind("事件名",handler) 移除當前元素上,指定事件上的名為handler的處理函數。
        .unbind("事件名") 移除當前元素上,指定事件上的所有處理函數
        .unbind() 移除當前元素上,所有事件的監聽

2. $("target").one("事件名",handle)

$("target").one("事件名",handle),同bind
    區別: 只觸發一次,觸發后,自動解綁

3. $("parent").delegate("selector","事件名",handler)

$("parent").delegate("selector","事件名",handler)
    原理: 簡化利用冒泡:
    1. 獲得目標元素: this->e.target
    2. 篩選目標元素: 第一個參數: "selector"
        只有滿足"selector"要求的元素,才能觸發事件
bind 與 .delegate 的區別
1. .bind直接綁定在目標元素上
    .delegate 綁定在父元素上
2. 監聽個數: .bind 監聽個數多——每個目標元素都添加
    .delegate 監聽個數少——只給父元素添加一個
3. 新增子元素自動獲得事件處理函數:
    .bind 只能對現有元素添加事件監聽
        新增元素無法自動獲得監聽
    .delegate 只要父元素下的元素,無論現有,還是新增,都能自動獲得父元素上統一的事件監聽  

4. .on/off

1. 代替bind: .on("事件名",handler) 同bind
2. 代替delegate: .on("事件名","selector",handler)同delegate

5.  .事件名

此方法僅對常用的事件提供了終極簡化

6.頁面加載后執行步驟

1. DOMContentLoaded: 僅DOM內容加載完,就可提前執行
    DOM內容僅包括: html和js
    提前觸發:只要不依賴於css和圖片的所有操作都可在DOM內容加載后,提前觸發
        比如: 事件綁定
    jq: $(document).ready(()=>{
        //DOM內容加載后,就可提前執行的操作
            //比如: 事件綁定
    })
    簡化: $().ready(()=>{
    更簡化: $(()=>{...})
        注意:寫在body結尾的script中的代碼默認就是DOM內容加載后自動執行
2. window.onload 在所有頁面內容加載完成后自動觸發
    包括: html,css,js,圖片
    使用場景:js代碼必須依賴css或圖片才能執行時

二、鼠標事件和模擬觸發

1.鼠標事件

mouseover  mouseout 進出子元素,會頻繁觸發父元素的處理函數
mouseenter  mouseleave 進入子元素,不再頻繁觸發父元素的處理函數
 簡寫: 如果同時綁定鼠標進入和移出事件時,可簡寫為hover
    $(...).hover(
        e=>{...}  //給mouseenter
        ,
        e=>{...}  //給mouseleave
    )
    更簡化: 如果兩個處理函數,可用toggle統一為一個處理函數,則只需要傳一個參數即可

2.模擬觸發

雖然沒有觸發事件,但是依然可用程序模擬執行元素的事件處理函數
 語法:  $(...).trigger("事件名")
 更簡單: $(...).事件名()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM