模擬多級覆選框效果--jquery

来源:http://www.cnblogs.com/shouce/archive/2016/06/08/5569182.html
-Advertisement-
Play Games

今天又次體會到jquery的強大了,做了個多級覆選框的效果,代碼總共就20+行就over了。 我又想用js來做一個看看,才寫了幾個方法就寫不動了,相容性要考慮很多,而且代碼量直線上升。 主要分享下jquery的這個效果的實現。代碼塊分兩塊: 一是全選的效果,就是點擊全選的覆選框時它的子孫都相應被選中 ...


今天又次體會到jquery的強大了,做了個多級覆選框的效果,代碼總共就20+行就over了。

我又想用js來做一個看看,才寫了幾個方法就寫不動了,相容性要考慮很多,而且代碼量直線上升。

主要分享下jquery的這個效果的實現。代碼塊分兩塊:

一是全選的效果,就是點擊全選的覆選框時它的子孫都相應被選中或者未選中。這個很好做,代碼如下:

evtEle.parent().next(".checks").find("input:checkbox").attr("checked", evtEle[0].checked);//evtEle是點擊的覆選框

二是當前覆選框的父框根據當前框的兄弟是否全選中來決定父框是否選中,再繼續往上看父框的父框等。
當全選中時這裡的實現使用parents來得到所有的父框,對每一個的操作結合each來完成。

當非全選中時父框依次失去被選中。代碼如下:

複製代碼
                if (evtEle.is("input:checked")) {
                    evtEle.parents(".checks").each(function () {
                        !$(this).children("p").children("input:checkbox").filter(function () {
                            return !this.checked;
                        })[0] && $(this).prev().children("input:checkbox").attr("checked", "checked");
                    });
                } else {
                    evtEle.parents(".checks").prev().children("input:checkbox").attr("checked", false);
                }
複製代碼

 

demo下載


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

-Advertisement-
Play Games
更多相關文章
  • 本文介紹了抽象工廠模式的概念,UML類圖,優缺點,實現方式以及(未)遵循的OOP原則。同時結合J2EE中常用的DAO實例詳解了抽象工廠模式的實現。 ...
  • 獲取【下載地址】 【免費支持更新】三大資料庫 mysql oracle sqlsever 更專業、更強悍、適合不同用戶群體【新錄針對本系統的視頻教程,手把手教開發一個模塊,快速掌握本系統】 A集成代碼生成器 [正反雙向(單表、主表、明細表、樹形表,開發利器)+快速構建表單;freemaker模版技術 ...
  • 1.意圖 為子系統中的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。 2.動機 將一個系統劃分成若幹子系統有利於降低系統的複雜性。一個常見的設計目標是使子系統間的通信和相互依賴達到最小。達到該目標的途徑之一是引入一個外觀對象,它為子系統提供了一個 ...
  • 本來沒想寫這篇文章,但是網上誤導大眾的文章太多了,所以今天就抽出半小時時間談一下我對前端模板引擎的感受吧。 前端模板引擎相信大家都再熟悉不過了,市面上非常多的號稱最好、最快、最牛逼的,隨便就能找到一大把,但是真的深層次的對比才能發現其中的優劣,經過這段時間對各個模板引擎的使用分析,最終選定一款,也是 ...
  • 跨域問題一直是前端中常見的問題,每當說到跨域,第一浮現的技術必然就是JSONP JSONP在我的理解,它並不是ajax,它是在文檔中插入一個script標簽,創建_callback方法,通過伺服器配合執行_callback方法,並傳入一些參數 JSONP的局限就在於,因為是通過插入script標簽, ...
  • 人生的第一份前端工作找到了,感謝大神主子們給半路出家自學的我這麼多的機會,很高興正式踏上客觀又樂趣滿滿的程式員之路,哇咔咔咔。 ​ 分享一個準備面試時遇到的一個有趣的問題: 要求實現類似 調用方式的方法,例如add為加法函數,則調用 輸出3,調用 輸出9。 ​ 函數的調用方式是多次調用同一個函數,將 ...
  • 1、sublime_text下載 https://www.sublimetext.com/3 (選擇相對應的版本) 2、通過package control安裝插件 https://packagecontrol.io/ (package control網站) 在sublime編輯器通過Ctrl+`打開 ...
  • 儘管 HTML5 的完全實現還有很長的路要走,但 HTML5 正在改變 Web,未來 HTML5 將把 Web 帶入一個更加成熟和開放的應用平臺。現在,越來越多的人嘗試用 HTML5 來製作網頁游戲等豐富的 Web 應用。今天要與大家分享的是 21 款基於 HTML5 的游戲,讓大家體驗一下 HTM ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...