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

首頁 > 開發 > JS > 正文

bootstrap-treeview自定義雙擊事件實現方法

2024-05-06 16:27:33
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了bootstrap-treeview自定義事件雙擊事件實現方法,需要的朋友可以參考下
 

bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多級列表樹插件。該jQuery插件基于Twitter Bootstrap,以簡單和優雅的方式來顯示一些繼承樹結構,如視圖樹、列表樹等等。但是不知為什么這個插件沒有自帶雙擊事件。
經過多次測試,使用方法$('#tree').dblclick( function () {})和方法$('#tree').on('dblclick',function(){})都不起作用!百思不得其解。最后救助大神,問題解決了,但是好像不太優雅但最終還是可以交差了。
這個解決方案中使用到了bootstrap-treeview自帶的兩個事件"nodeSelected"和"nodeUnselected".如果在treeview的節點上雙擊一定會觸發選中事件和取消選中事件,計算這兩個時間的時間間隔就可以模擬出雙擊事件的效果了。雙擊事件每次點擊鼠標左鍵的間隔,人為操作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()      });            //最后一次觸發節點Id      var lastSelectedNodeId = null;      //最后一次觸發時間      var lastSelectTime = null;            //自定義業務方法      function customBusiness(data){        alert("雙擊獲得節點名字: "+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(){        //節點選中時觸發        $('#tree').on('nodeSelected', function(event, data) {          clickNode(event, data)        });        //節點取消選中時觸發        $('#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()

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

以上就是本文的詳細內容,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 资溪县| 石棉县| 佛山市| 虞城县| 新民市| 泰来县| 石柱| 中超| 昭觉县| 雷州市| 富蕴县| 云浮市| 中西区| 固始县| 上思县| 邢台县| 丰顺县| 阿拉尔市| 玛曲县| 油尖旺区| 连江县| 绵阳市| 盱眙县| 乌拉特前旗| 孝义市| 刚察县| 淮南市| 正镶白旗| 颍上县| 仁布县| 富阳市| 南郑县| 梅河口市| 永州市| 丰都县| 镇远县| 武宁县| 昌吉市| 诸暨市| 花垣县| 康马县|