国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

bootstrap-treeview自定義雙擊事件實(shí)現(xiàn)方法

2019-11-20 10:49:58
字體:
供稿:網(wǎng)友

bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多級(jí)列表樹插件。該jQuery插件基于Twitter Bootstrap,以簡(jiǎn)單和優(yōu)雅的方式來顯示一些繼承樹結(jié)構(gòu),如視圖樹、列表樹等等。但是不知為什么這個(gè)插件沒有自帶雙擊事件。
經(jīng)過多次測(cè)試,使用方法$('#tree').dblclick( function () {})和方法$('#tree').on('dblclick',function(){})都不起作用!百思不得其解。最后救助大神,問題解決了,但是好像不太優(yōu)雅但最終還是可以交差了。

這個(gè)解決方案中使用到了bootstrap-treeview自帶的兩個(gè)事件"nodeSelected"和"nodeUnselected".如果在treeview的節(jié)點(diǎn)上雙擊一定會(huì)觸發(fā)選中事件和取消選中事件,計(jì)算這兩個(gè)時(shí)間的時(shí)間間隔就可以模擬出雙擊事件的效果了。雙擊事件每次點(diǎn)擊鼠標(biāo)左鍵的間隔,人為操作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">   //獲取樹形結(jié)構(gòu)列表數(shù)據(jù)   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;   }      //初始化樹形結(jié)構(gòu)列表   $('#tree').treeview({    data: getTree()   });      //最后一次觸發(fā)節(jié)點(diǎn)Id   var lastSelectedNodeId = null;   //最后一次觸發(fā)時(shí)間   var lastSelectTime = null;      //自定義業(yè)務(wù)方法   function customBusiness(data){    alert("雙擊獲得節(jié)點(diǎn)名字: "+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é)點(diǎn)選中時(shí)觸發(fā)    $('#tree').on('nodeSelected', function(event, data) {     clickNode(event, data)    });    //節(jié)點(diǎn)取消選中時(shí)觸發(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()

上面這個(gè)方法主要用來判斷選中事件和取消選中事件操作的目標(biāo)是否是一個(gè)且時(shí)間間隔是否足夠小。符合這兩個(gè)條件客戶就是想觸發(fā)雙擊事件。可以再函數(shù)customBusiness中自定義業(yè)務(wù)邏輯。

如果大家還想深入學(xué)習(xí),可以點(diǎn)擊這里進(jìn)行學(xué)習(xí),再為大家附兩個(gè)精彩的專題:Bootstrap學(xué)習(xí)教程Bootstrap實(shí)戰(zhàn)教程

以上就是本文的詳細(xì)內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 博湖县| 沙坪坝区| 朔州市| 临沭县| 巫山县| 丹寨县| 临武县| 渭源县| 庄河市| 时尚| 班玛县| 方城县| 安岳县| 晋中市| 芜湖县| 易门县| 乃东县| 清水河县| 平江县| 岳阳县| 大田县| 通榆县| 文昌市| 上栗县| 邹平县| 天台县| 朝阳县| 准格尔旗| 府谷县| 刚察县| 新干县| 微博| 当阳市| 苏尼特右旗| 乌鲁木齐县| 河东区| 左贡县| 奇台县| 龙山县| 湖口县| 阿合奇县|