簡單總結焦點事件、Event事件對象、冒泡事件

来源:http://www.cnblogs.com/shoulder11/archive/2016/10/16/5966981.html
-Advertisement-
Play Games

每學習一些新的東西,要學會複習,總結和記錄。 今天來簡單總結一下學到的幾個事件:焦點事件、Event事件對象、冒泡事件 其實這幾個事件應該往深的說是挺難的,但今天主要是以一個小菜的角度去嘗試理解一些基本的知識點。 1.焦點事件: 1.1概念理解: 想象場景:當一堆text文本框出現在面前,當點擊其中 ...


每學習一些新的東西,要學會複習,總結和記錄。

今天來簡單總結一下學到的幾個事件:焦點事件、Event事件對象、冒泡事件

其實這幾個事件應該往深的說是挺難的,但今天主要是以一個小菜的角度去嘗試理解一些基本的知識點。

 

1.焦點事件:

  1.1概念理解:

  想象場景:當一堆text文本框出現在面前,當點擊其中一個文本框,它就會響應用戶,並出現游標閃動(這時,點擊令它獲得焦點)。

  所以說:焦點事件是用來讓瀏覽器區分哪一個對象是用戶要進行操作(輸入值、選擇、跳轉)的。

  總結===》  瀏覽器(區分)哪一個對象(是)用戶(要) 操作(的)

  回到場景來說,就是出現游標那個,它被點擊後,與其他文本框不一樣,提示用戶此文本框是可以操作(輸入)的!

    

  1.2設置方式:   

    點擊設置、Tab鍵切換、JS來設置

     (註意:不是所有元素都能接受焦點的:DIV、P等就不能,只有能夠響應用戶的才可以設置焦點)

 

   1.3.焦點事件()

         Obj.onfocus = function ( ){  };:當元素獲取時觸發事件

       Obj.onblur = function( ){  }  :當元素失去焦點時觸發

 

   1.4.焦點方法

    Obj.onfocus();  給指定元素設置焦點

       Obj.onblur ();  給指定元素失去焦點

       Obj.select();  選擇指定元素裡面的文本內容

 

2.Event 事件:

  在理解冒泡事件和捕獲事件前,先來理解一下什麼叫做 Event 事件。

  2.1概念:

    Event:事件對象(事件發生的狀態)

    想象場景:當用滑鼠點擊一個按鈕時,當前點擊按鈕的(激活狀態、滑鼠的位置)等信息,都是點擊事件的事件對象

    也就是說:事件對象是指 當一個事件發生時,當前對象 發生這個事件 有關信息

    

  2.2相容性:

    event具有相容性問題。 

    標準下:IE/chrome里event是一個內置全局對象 ,也就是已經進行定義了   var event

    非標準下:FF中的事件對象,是通過事件函數的第一個事件參數傳入的

    相容性處理:

1 function fn1(ev){   
2     var ev=ev || event;    
3     alert(ev);
4 }
5 
6 document.onclick = fn1;        //通過點擊調用事件

    註意:事件對象必須在一個事件調用下才生成事件函數,也就是說,不能夠fn1();這樣直接調用,要通過 obj.onclikc = fn1;這種類型的調用方法。

 

3.冒泡事件:

  3.1概念:

    當一個元素接收到一個事件時,會將這個事件傳給它的父級,直到最頂層window

 1 <div id="div1">
 2         <div id="div2">
 3             <div id="div3"></div>   //已經為div3設置了絕對定位到div1和div2外面
 4     </div>
 5     
 6    <script>
 7     var oDiv1 = document.getElementById('div1');
 8     var oDiv2 = document.getElementById('div2');
 9     var oDiv3 = document.getElementById('div3');
10     function fn1(){
11          alert(this.id);
12     }
13     oDiv1.onclick = fn1;    //點擊div1會同時觸發div2、3的onclck事件(冒泡)
14     oDiv2.onclick = fn1;
15     oDiv3.onclick = fn1;
16     </script>

 

   3.2冒泡事件的阻止:

    event.cancleBubble = true;  //阻止當前對象的當前事件的冒泡

 function fn1(){
        alert(this.id);
        event.cancleBubble = true;  
     }

 

  3.3冒泡事件的簡單應用:

     冒泡效應會將對象當前發生的事件傳遞傳遞到父級,這乍一看讓人感覺非常不好,但總的來說, 冒泡還是利大於弊的。接下來討論一個有關利方面的例子。

     應用例子:如下圖,滑鼠滑動到分享到時,紫色Div會出來;離開紫色div或者分享到div時,紫色div消失。

     思路:學習了冒泡我們知道,具有事件傳遞的效果,當我們滑鼠滑動到”分享到“時,自動就有一個onmouserover事件發生了(滑鼠事件),這時這個事件會傳遞到他的父級,因此我們只要去設置父級的onmouseover事件就可以了,分別是滑鼠移入left為0px;移出left=-100px;

     

 

 

   <div id="div1">
        <div id="div2">分享到</div>
    </div>
    <script>
    var oDiv1 = document.getElementById('div1');
    var oDiv2 = document.getElementById('div2');
    
    
    
    //根據事件冒泡機制,oDiv2.onmouseover是發生的只是沒有寫出來,
    //因此會觸發父級的onmouseover事件,即使沒有碰到父級,也可以通過div2的事件傳給父級元素
    oDiv1.onmouseover = function(){
        oDiv1.style.left = 0+'px';    
    };
    oDiv1.onmouseout = function(){
        oDiv1.style.left = -100+'px';    
    };

 


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

-Advertisement-
Play Games
更多相關文章
  • 上一文章是擴展ExtJS自帶的Date組件。在這裡將創建一個評分組件。 ...
  • 字體絕對是每一個設計非常重要的部分,設計者總是希望有最好的免費字體,以保持他們字體庫的更新。所以今天我要向設計師們分享一組用於簡潔網頁設計的光滑英文字體。這些免費的字體是適用於各種類型的設計,除了網頁,還有海報、標誌、印刷廣告等。 ...
  • 今天的這篇文章還是一篇“Hello World”,只不過開發環境有所改變——Visual Studio Code+Angular2+Webapck,也算是正式的開篇了。 一、新建一個文件夾作為此次Demo的根目錄,這裡為:“F:\Visual Studio Code\app1”,併在“命令提示符中打 ...
  • AJAX即“Asynchronous Javascript And XML”(非同步JavaScript和XML)。 個人理解:ajax就是無刷新提交,然後得到返回內容。 對應的不使用ajax時的傳統網頁如果需要更新內容(或用php做處理時),必須重載整個網頁頁面。 示例: html代碼如下 ./te ...
  • 本系列文章導航 從零開始學習jQuery (一) 入門篇 一.摘要 本系列文章將帶您進入jQuery的精彩世界, 其中有很多作者具體的使用經驗和解決方案, 即使你會使用jQuery也能在閱讀中發現些許秘籍. 本篇文章是入門第一篇, 主要是簡單介紹jQuery, 通過簡單示例指導大家如何編寫jQuer ...
  • 子元素避免同時使用float和margin。 如: 需要子元素的margin-bottom:20px時,可以給用父元素設置padding-bottom:20px代替。 ...
  • 1.meta標簽。 1.1 <meta charset="utf-8"> charset:字元集 1.2 <meta name="keywords" content=""> 作用:對網站進行優化的作用 SEO 提高排名。 1.3 <meta name="description" content="" ...
  • 作為web前端初學者,今天要記錄的是三個控制項的使用心得,分別是表格控制項jqgrid,樹形控制項ztree,圖表控制項echarts。下邊分別進行描述。 1.jqgrid 首先放官方demo網站上來,http://blog.mn886.net/jqGrid/,上面的描述還是挺有幫助的。 jqgrid的添加 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...