jQuery 事件處理

来源:http://www.cnblogs.com/shouce/archive/2016/04/11/5376961.html
-Advertisement-
Play Games

瀏覽器的事件模型 DOM第0級事件模型 他的屬性提供了關於當前正被處理的已觸發事件的大量信息。這包括一些細節,比如在哪個元素上觸發的事件、滑鼠事件的坐標以及鍵盤事件中單擊了哪個鍵。 當觸發 dom 樹中一個元素上的事件時,事件模型會檢查這個元素是否已經創建了特定的事件處理器。如果是,就會調用已創建的 ...


瀏覽器的事件模型

DOM第0級事件模型

  1. Event實例

    他的屬性提供了關於當前正被處理的已觸發事件的大量信息。這包括一些細節,比如在哪個元素上觸發的事件、滑鼠事件的坐標以及鍵盤事件中單擊了哪個鍵。

  2. 事件冒泡

當觸發 dom 樹中一個元素上的事件時,事件模型會檢查這個元素是否已經創建了特定的事件處理器。如果是,就會調用已創建的事件處理器。然後,事件模型會檢查目標元素的父元素,看其是否已經為此事件類型創建了處理器。如果是,就調用已創建的處理器,之後檢查它的父元素,以及父元素的父元素,以此類推,直到 dom 樹的頂部。

DOM第2級事件模型

IE事件模型

jQuery事件模型

使用jQuery綁定事件處理器

<html>
<head>
    <title>jQuery Events Example</title>
    <script type="text/javascript" src="../scripts/jquery-1.7.1.js"></script>
    <script type="text/javascript">
        $(function () {
            $('#example')
              .bind('click', function (event) {
                  alert('BOOM once!');
              })
              .bind('click', function (event) {
                  alert('BOOM twice!');
              })
              .bind('click', function (event) {
                  alert('BOOM three times!');
              });
        });
    </script>
</head>

<body>
    <img id="example" src="example.jpg" />
</body>
</html>

bind(eventType, data, handler); bind(eventMap)

可以為事件名稱添加以圓點分隔的尾碼來指定命名空間,以批量操作事件處理器。

可以通過單個bind()方法來為一個元素綁定多個事件。

$('.whatever').bind({
    click:function(event){/* handle */},
    mouseenter: function (event) {/* handle */ },
    mouseleave: function (event) {/* handle */ }
})

特定的事件綁定:

blur change click dblclick error focus focusin focusout keydown keypress keyup load mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup ready resize scroll select submit unload

當使用這些便捷方法時,event.data值是只讀的。他們有一個參數 listener 函數,表示事件處理器。

focusin focusout

one(eventType, data, listener)

刪除事件處理器

unbind(eventType, listener); unbind(event)

刪除特定的事件處理器

刪除命名空間中的所有事件處理器

$('*').unbind('.fred')

Event實例

獨立於瀏覽器的jQuery.Event屬性和方法

名稱 描述
altKey  
ctrlKey  
currentTarget  
data  
metaKey  
pageX  
pageY  
relatedTarget  
screenX  
screenY  
shiftKey  
result  
target  
timestamp  
type  
which  
preventDefault()  
stopPropagation()  
stopImmediatePropagation()  
isPropagationStopped()  
isImmediatePropagationStopped()  

預先管理事件處理器(deprecated)

  1. 創建live事件處理

    live(eventType, data, listener)

  2. 刪除live事件處理

    die(eventType, listener)

觸發事件處理器

trigger(eventType, data)

triggerHandler(eventType, data)

觸發的便捷方法

blur() change() click() dblclick() error() focus() focusin() focusout() keydown() keypress() keyup() load() mousedown() mouseenter() mouseleave() mousemove() mouseout() mouseover() mouseup() resize() scroll() select() submit() unload()

其他事件相關的方法

  1. 起切換作用的監聽器

    toggle(listener1, listener2, ...)

  2. 在元素上懸停滑鼠

    hover(enterHandler, leaveHandler); hover(handler)

充分利用(更多的)事件

過濾大的數據集合

 

通過模板複製創建元素

 

建立主體標記

 

添加新的過濾器

 

添加限定控制項

 

刪除不需要的過濾器和其他任務

 

總是有改進的餘地


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 獲取【下載地址】 QQ: 313596790 【免費支持更新】三大資料庫 mysql oracle sqlsever 更專業、更強悍、適合不同用戶群體【新錄針對本系統的視頻教程,手把手教開發一個模塊,快速掌握本系統】A 集成代碼生成器(開發利器); 技術:313596790 增刪改查的處理類,ser ...
  • 培訓大數據架構開發! 從零基礎到高級,一對一培訓![技術QQ:2937765541] 課程體系: 獲取視頻資料和培訓解答技術支持地址 課程展示(大數據技術很廣,一直線上為你培訓解答!): 獲取視頻資料和培訓解答技術支持地址 ...
  • Atiti。流量提升軟體設計大綱規劃 v1 q45 1. 通用數據管理1 2. 網頁Url管理模塊1 3. 網站domain管理1 4. ad廣告管理2 5. Task任務管理2 6. 任務執行功能::進入網站,隨機瀏覽網頁2 7. 系統設置2 8. 界面跨平臺h52 9. 開發語言java+h53 ...
  • atitit.userService 用戶系統設計 v5 q330 1. 新特性1 2. Admin login1 3. 用戶註冊登錄2 3.1. <!-- 會員註冊使用 --> 商家註冊2 3.2. <!-- 會員登錄使用 -->3 3.3. <!-- 會員退出登錄 -->3 3.4. <!-- ...
  • 在所有的設計模式開篇中,總是說一個好的架構,或多或少都會有設計模式的出現。當然或多或少也會使用設計模式的相關原則: SOLID+迪米爾原則 1.優化代碼的第一步:單一職責原則 S:單一職責鏈原則:英文名稱為Single Responsibility Principle(SRP) 定義:就一個類而言, ...
  • 寫在最前面:轉載請註明出處 目錄置頂: 關於項目 基於DDD領域驅動設計的WCF+EF+WPF分層框架(1) 架構搭建 基於DDD領域驅動設計的WCF+EF+WPF分層框架(2) WCF服務端具體實現 基於DDD領域驅動設計的WCF+EF+WPF分層框架(3) WCF客戶端配置以及代理 基於DDD領 ...
  • 移動設備已經成為在任何時間的一部分工作。在小型和中型組織人員使用個人平板電腦和智能手機業務。開源社區在這個移動應用工作的增長起到了關鍵作用。有許多開放源代碼的應用程式,可以幫助提高你的創造力。今天我們所列舉的10大開源工具,你會在工作中找到有用的。 1.Convertigo 這是用於開發和部署應用程 ...
  • PC的早期階段,也是傳統的C/S模式居多,後進化到B/S模式,並產生了SaaS、雲計算等概念和應用。從客戶端進化到瀏覽器最大好處是客戶端無需更新,減少了大量的更新成本,只需伺服器端進行更新。這也是為什麼現在流行webQQ, google docs, photoshop網頁版的原因。現在同時很多軟體廠 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...