jQuery Nestable2 使用總結

来源:https://www.cnblogs.com/qingshanking/archive/2018/12/27/10185804.html
-Advertisement-
Play Games

最近,因為公司的一個新項目,用了一個基於bootstrap二次改造的國外友人的框架。感覺很一般吧,要求更換框架,客戶拒絕。只能搞這個,發現裡面一個jQuery插件-【Nestable】但是源作者長時間不更新,後來發現了一個新版本,應該是另外一個人基於Nestable改造的,稱之為“Nestable2 ...


最近,因為公司的一個新項目,用了一個基於bootstrap二次改造的國外友人的框架。感覺很一般吧,要求更換框架,客戶拒絕。只能搞這個,發現裡面一個jQuery插件-【Nestable】但是源作者長時間不更新,後來發現了一個新版本,應該是另外一個人基於Nestable改造的,稱之為“Nestable2”,所以也就花了一些時間研究了一下,使用百度找的資料都很淺薄,所以這裡做一個彙總,也希望更多的人少走彎路吧。雖然說這個插件用的人不多。

項目地址

GitHub

疑難點彙總

1.Nestable 初始化摺疊

在Nestable 2中,初始化摺疊跟Nestable 原始版本中一致,但是百度搜索的結果很少,我覺得應該是這個插件很少人用吧,因為比這個好看的插件多了去。

// 展開指定記憶體塊中的元素  
$(selector).nestable('expandAll'); 
// 收合指定記憶體塊中的元素  
$(selector).nestable('collapseAll');

2.Nestable 禁止拖動

禁止拖動在Nestable原始版本中是沒有這一功能的,因為這個插件就是可拖拽的,拖拽完成後,把數據再傳遞給後臺進行修改。這個我找了很久都沒有一個好點的解決方案,在CSDN上博主說,直接刪除插件底層代碼就可以實現,但是怕有問題,所以找到新的插件,也就是版本2。來看代碼。

$('selector').nestable({
        'onDragStart': function (l, e) {
            return false;
        }
});

這個地方,如果把 return false刪除,就可以寫用戶拖動元素時,觸發作為選項提供的回調函數。l是主容器,e是已移動的。需要這個功能的,可以查看GitHub上的介紹。

3.Nestable 點擊事件

這個是我在平安夜當晚研究到11多,都沒解決的問題,今天偶然性發現了問題,原因是JS的事件冒泡造成的,同時,非常感謝Google的幫助哈。

Nestable 2比原版更加擴展,直接使用JSON數據渲染到頁面上,但是沒有額外的點擊事件,這就需要自己操作了,所以就用類作為點擊。

$('.dd-item').click(function () {
      var id = $(this).data('id');
      alert(id);
});

但是這個地方出問題了。點擊第一級數據正常,第二級數據後,獲取到了兩個id,一個是父級id,一個是點擊的id,再繼續測試,三級的話,會彈出三個數據。經過百度的一段探索後,發現可以使用jQuery 事件one()方法,但是只能點擊一次,第二次點擊就無法使用了,這不是一個有效的方法。

然後再者就是使用防止冒泡的方法:前端博客

w3c的方法是e.stopPropagation(),IE則是使用e.cancelBubble = true

試了試,沒有效果。那就拼接html,單獨給li標簽寫一個onclick方法依舊是原本的小bug。

分析了一下渲染的界面。發現生成的裡面嵌套了一個div,如果給這個div加一個點擊事件,會不會能夠實現單擊的效果呢?

$('.dd-handle').click(function () {
     var p = $(this).parent();
     var id = p.data('id')
     alert(id);
});

果然,這個驗證了我的猜想,給渲染的子級元素點擊事件,找到父級ID就不會出現冒泡問題了。哈哈完美解決。

總結

Nestable2基於Nestable一個升級版,添加了很多功能,雖然去年不再更新,但是這個插件依舊很強大。希望這個文檔能夠給一些帶來一點幫助吧。

本文首發於:https://qsh5.cn/post-70.html


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

-Advertisement-
Play Games
更多相關文章
  • Vue 項目在開發時運行正常,打包發佈後卻出現各種報錯,這裡整理一下遇到的問題,以備忘。 1、js 路徑問題 腳手架預設打包的路徑為絕對路徑,改為相對路徑。修改 config/index.js 中 build 節點下 assetsPublicPath,把原來 ‘/’ 改為 ‘./’ 2、img 路徑 ...
  • jQuery是什麼? jQuery是一款優秀的JavaScript庫,從命名可以看出jQuery最主要的用途就是用來做查詢(jQuery=js+Query),正如jQuery官方Logo副標題所說(write less,do more)使用jQuery能讓我們對HTML文檔遍歷和操作、事件處理、動畫 ...
  • Node.js 10已經進入LTS時代!其應用場景已經從腳手架、輔助前端開發(如SSR、PWA等)擴展到API中間層、代理層及專業的後端開發。Node.js在企業Web開發領域也日漸成熟,無論是在API中間層,還是在微服務中都得到了非常好的落地。本書將通過Web開發框架Koa2,引領你進入Node.... ...
  • 測試Mantis rest api時碰到的問題:404 Not Found. 根據文件,Mantis rest api的預設url是{{url}}/api/rest/{{controller}}。 其中{{url}}的部分是Mantis實體的base url,{{controller}}則是各api ...
  • 1、HTML代碼,如下圖: 2、jQuery代碼,如下圖: ...
  • 本文由雲+社區發表 目的 寫了幾個Flutter的demo,但是對Flutter的自定義view和動畫都不太瞭解,看到一個類似效果在android的實現,就嘗試用Flutter做一下。同時也是學習Flutter的自定義view和動畫相關的知識。 效果 效果動圖 在藍色區域點擊,會產品水波紋動畫。 宛 ...
  • 前言 本例基於react,但是實際上就是用原生js做的。相容性做到了IE9,但是按照這個思路做是可以做到IE8甚至更低的。 需求與最初的思路 當我拿到這個需求的時候以為很簡單,就是可以給頁面上的文章做記號,比如添加個下劃線,或者背景塗色做成熒光筆的樣子。 因為只需要相容IE9,所以window.ge ...
  • // 將一個JSON數組[{},{},{}]按一定規則合併到另一個JSON數組[{},{},{}] // Object.assign方法的第一個參數是目標對象,後面的參數都是源對象。 var list1 = [{id:2,name:'aa'},{id:4,name:'bb'},{id:1,name: ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...