最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2016年01月09日 08:48:08   作者:程序員之路  
這篇文章主要介紹了bootstrap-treeview自定義事件雙擊事件實(shí)現(xiàn)方法,需要的朋友可以參考下

bootstrap-treeview是一款效果非??岬幕赽ootstrap的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í)有所幫助。

相關(guān)文章

最新評(píng)論

隆化县| 永善县| 楚雄市| 冷水江市| 青海省| 濮阳县| 康平县| 松阳县| 石河子市| 曲麻莱县| 宁明县| 泗水县| 广丰县| 巴彦县| 邯郸市| 商丘市| 铁岭县| 大渡口区| 安阳市| 彝良县| 安丘市| 泽州县| 寻乌县| 德钦县| 通许县| 玉树县| 康定县| 大城县| 积石山| 高阳县| 礼泉县| 渭源县| 阿鲁科尔沁旗| 犍为县| 略阳县| 海林市| 丰县| 武邑县| 道孚县| 咸宁市| 河津市|