bootstrap-treeview自定義雙擊事件實現(xiàn)方法
bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多級列表樹插件。該jQuery插件基于Twitter Bootstrap,以簡單和優(yōu)雅的方式來顯示一些繼承樹結構,如視圖樹、列表樹等等。但是不知為什么這個插件沒有自帶雙擊事件。
經過多次測試,使用方法$('#tree').dblclick( function () {})和方法$('#tree').on('dblclick',function(){})都不起作用!百思不得其解。最后救助大神,問題解決了,但是好像不太優(yōu)雅但最終還是可以交差了。
這個解決方案中使用到了bootstrap-treeview自帶的兩個事件"nodeSelected"和"nodeUnselected".如果在treeview的節(jié)點上雙擊一定會觸發(fā)選中事件和取消選中事件,計算這兩個時間的時間間隔就可以模擬出雙擊事件的效果了。雙擊事件每次點擊鼠標左鍵的間隔,人為操作300毫秒足夠。
具體代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link href="css/bootstrap.css" rel="stylesheet" /> </head> <body> <div id="tree" style="width: 400px;height: 1000px;margin-left: auto;margin-right: auto;"></div> <div id="testDate"></div> <script src="js/jquery.js"></script> <script src="js/bootstrap-treeview.js"></script> <script type="text/javascript"> //獲取樹形結構列表數據 function getTree() { var tree = [{ text: "Parent 1", nodes: [{ text: "Child 1", nodes: [{ text: "Grandchild 1" }, { text: "Grandchild 2" }] }, { text: "Child 2" }] }, { text: "Parent 2" }, { text: "Parent 3" }, { text: "Parent 4" }, { text: "Parent 5" }]; return tree; } //初始化樹形結構列表 $('#tree').treeview({ data: getTree() }); //最后一次觸發(fā)節(jié)點Id var lastSelectedNodeId = null; //最后一次觸發(fā)時間 var lastSelectTime = null; //自定義業(yè)務方法 function customBusiness(data){ alert("雙擊獲得節(jié)點名字: "+data.text); } function clickNode(event, data) { if (lastSelectedNodeId && lastSelectTime) { var time = new Date().getTime(); var t = time - lastSelectTime; if (lastSelectedNodeId == data.nodeId && t < 300) { customBusiness(data); } } lastSelectedNodeId = data.nodeId; lastSelectTime = new Date().getTime(); } //自定義雙擊事件 function customDblClickFun(){ //節(jié)點選中時觸發(fā) $('#tree').on('nodeSelected', function(event, data) { clickNode(event, data) }); //節(jié)點取消選中時觸發(fā) $('#tree').on('nodeUnselected', function(event, data) { clickNode(event, data) }); } $('#tree').dblclick( function () { alert("Hello World!"); }); $(document).ready(function() { //customDblClickFun(); }); </script> </body> </html>
粗濾講解:
最主要的全局變量:lastSelectedNodeId,lastSelectedNodeId
最主要的方法:clickNode()
上面這個方法主要用來判斷選中事件和取消選中事件操作的目標是否是一個且時間間隔是否足夠小。符合這兩個條件客戶就是想觸發(fā)雙擊事件??梢栽俸瘮礳ustomBusiness中自定義業(yè)務邏輯。
如果大家還想深入學習,可以點擊這里進行學習,再為大家附兩個精彩的專題:Bootstrap學習教程 Bootstrap實戰(zhàn)教程
以上就是本文的詳細內容,希望對大家的學習有所幫助。
- bootstrap treeview 擴展addNode方法動態(tài)添加子節(jié)點的方法
- BootStrap TreeView使用實例詳解
- bootstrap插件treeview實現(xiàn)全選父節(jié)點下所有子節(jié)點和反選功能
- JS樹形菜單組件Bootstrap TreeView使用方法詳解
- 淺析使用BootStrap TreeView插件實現(xiàn)靈活配置快遞模板
- Bootstrap樹形菜單插件TreeView.js使用方法詳解
- 淺析BootStrap Treeview的簡單使用
- 基于MVC5和Bootstrap的jQuery TreeView樹形控件(二)之數據支持json字符串、list集合
- 基于MVC5和Bootstrap的jQuery TreeView樹形控件(一)之數據支持json字符串、list集合
- bootstrap-Treeview實現(xiàn)級聯(lián)勾選
相關文章
echarts圖表設置寬度100%結果為100px的解決辦法
在開發(fā)一個前端項目時需要用到Element-ui的el-tabs組件和Echart開源庫,當兩者嵌套使用時,我給Echart中的圖表寬度設置為了100%,但是實際的寬度卻只有100px,這篇文章主要給大家介紹了關于echarts圖表設置寬度100%結果為100px的解決辦法,需要的朋友可以參考下2022-12-12解決循環(huán)中setTimeout執(zhí)行順序的問題
今天小編就為大家分享一篇解決循環(huán)中setTimeout執(zhí)行順序的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06uniapp開發(fā)安卓App實現(xiàn)高德地圖路線規(guī)劃導航功能的全過程
最近項目需要在APP內實現(xiàn)路線規(guī)劃導航功能,直接打開高德地圖進行導航,下面這篇文章主要給大家介紹了關于利用uniapp開發(fā)安卓App實現(xiàn)高德地圖路線規(guī)劃導航功能的相關資料,需要的朋友可以參考下2022-08-08