jQuery div 下拉框焦點事件

来源:http://www.cnblogs.com/ZevEssay/archive/2016/10/12/5953205.html
-Advertisement-
Play Games

這章與上一張《jQuery input 下拉框焦點事件》類似 這章講述div的焦點事件如何使用 div的焦點事件與input的焦點事件區別在於 需要多添加一個屬性:tabindex; (Safari可能不支持) 這個屬性是可以讓鍵盤獲取到焦點事件,當然,我們只是用這個屬性來讓div有焦點而已;為了不 ...


這章與上一張《jquery input 下拉框(模擬select控制項)焦點事件》類似

這章講述div的焦點事件如何使用

div的焦點事件與input的焦點事件區別在於 需要多添加一個屬性:tabindex (Safari可能不支持) ; 這個屬性是可以讓鍵盤獲取到焦點事件,當然,我們只是用這個屬性來讓div有焦點而已; 為了不改變網頁原有的鍵盤屬性; 建議設置成  tabindex = '-1';  tabindex 預設為0,即在網頁中按下tab即可觸發,第一下tab就觸發當前事件;

下麵是html結構:

  <div class="div-box" tabindex="-1">
    <p class="text"><span class="texts">Holle Word</span> <span class="tip"></span></p>
    <ul class="dropdown-menu">
      <h4>Holle Word</h4>
      <hr>
      <li>test</li>
      <li>dome</li>
      <li>標簽</li>
    </ul>
  </div>

 

css : 

    .div-box {
      position: relative;
      display: inline-block;
      outline: 0;
    }
    
    .text {
      height: 32px;
      line-height: 32px;
      margin: 0;
      padding: 0 6px;
      cursor: pointer;
    }
    
    .dropdown-menu {
      position: absolute;
      width: 200px;
      color: #FFF;
      margin: 0;
      padding: 10px;
      list-style: none;
      border-radius: 10px;
      background-color: #555;
      -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
      box-shadow: 0 5px 15px rgba(255, 255, 255, .1);
    }
    
    .dropdown-menu h4 {
      text-align: center;
      margin: 10px 0;
    }
    
    .dropdown-menu li {
      border-bottom: 1px solid #999;
      padding: 0 6px;
      line-height: 28px;
    }
    
    .dropdown-menu li:hover {
      background-color: black;
      cursor: pointer;
    }
    
    .tip {
      width: 0;
      height: 0;
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 10px solid #555;
      display: inline-block;
    }

js :

    var isBox = false; // 定義一個觸發焦點事件的開關,預設為不開啟狀態 || 也可以給input設置一個屬性,來判斷
    $(".dropdown-menu").hide();
    $(".div-box").focus(function () { // div綁定焦點事件,觸發時打開焦點開關
      $(this).find(".dropdown-menu").show();
      isBox = true;
    })
    $(".div-box").mousemove(function () { // 滑鼠在div區域內打開焦點開關
      isBox = true;
    });
    $(".div-box").mouseout(function () { // 滑鼠在div區域外關閉焦點開關
      isBox = false;
    });
    $(".div-box").blur(function () { // div失去焦點時通過焦點開關狀態判斷滑鼠所在區域
      if (isBox == true) return false;
      $(this).find(".dropdown-menu").hide();
    });
    $(".dropdown-menu").find('li').each(function () { 
      $(this).on("click", function () {
        isBox = false;
        var text = $(this).text();
        $(this).parent().siblings(".text").find(".texts").text(text);
        $(this).parent().parent().blur(); // *********  清除焦點事件  (div本身是沒焦點的)
        $(this).parent().hide();
      })
    })

這章與上一章《jquery input 下拉框(模擬select控制項)焦點事件》大致相同 ,區別在於tabindex 屬性 和 在點擊後需要移除div的焦點事件;

 

本章鏈接:http://www.cnblogs.com/ZevEssay/p/5953205.html


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

-Advertisement-
Play Games
更多相關文章
  • window.onload用法詳解:網頁中的javaScript腳本代碼往往需要在文檔載入完成後才能夠去執行,否則可能導致無法獲取對象的情況,為了避免這種情況的發生,可以使用以下兩種方式:一.將腳本代碼放在網頁的底端,這樣在運行腳本代碼的時候,可以確保要操作的對象已經載入完成。二.通過window. ...
  • (-1)寫在前面 我用的是chrome49,這個idea是我在stackoverflow上回答問題時看到了,多謝這位同行,加深了我對很多技術點的理解,最近剛到北京,忙碌了一兩天,在後續的日子里,會被安排面試,學習計劃只能按工作流走了,做完這個要看一個特別酷的效果,好激動! (0)效果演示 (1)實現 ...
  • https://yunpan.cn/cvxaNNCE4xK7T (提取碼:639e) ...
  • 首先正則表達式是什麼? 正則表達式是一個自定義規則的表達式,用來匹配符合定義的規則的字元串。什麼意思?比如這是一個正則表達式:/\d/,\d的意思就是任意一個數字,所以這個正則表達式的意思就是匹配一個任意數字。大概明白了吧! ...
  • 實現效果一樣,禁止複製。 區別: oncopy="document.selection.empty()" 沒禁止,只是把它複製的內容,變成空了; oncopy="return false"是禁止複製。 ...
  • 需要準備:jQuery Bootstrap 天氣預報API(本文中使用API可能會失效請靈活運用) CSS樣式可以你自己去寫這裡只提出jQuery 請求數據和解析JSON數據 上面是要用到的JSON數據格式 搭建界面略過 根據JSON中數據添加到HTML中 解析數據到HTML中 其中一定要註意 跨域 ...
  • 目的 template綁定(模板綁定)使用渲染模板的結果填充關聯的DOM元素。 模板是一種簡單方便的方式來構建複雜的UI結構 。 下麵介紹兩種使用模板綁定的方法: 本地模板是支持foreach,if,with和其他控制流綁定的機制。 在內部,這些控制流綁定捕獲元素中包含的HTML標記,並將其用作模板... ...
  • 之前看別人寫的插件經常會用到RegExp對象來驗證輸入,並且獲取一些那時我並不曉得是什麼東西的數組,來取值進行自定義的邏輯處理。今天學習了一下RegExp類型。終於有了一個初步的瞭解,至少不會看一會就感覺蒙圈了,記錄分享一下 ECMAScript通過RegExp類型來支持正則表達式 語法如下 其中 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...