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

首頁 > 編程 > JavaScript > 正文

jquery.jstree 增加節點的雙擊事件代碼

2019-11-21 00:20:01
字體:
來源:轉載
供稿:網友
jsTree 是基于jquery的樹插件,支持拖放、復制、刪除、快捷鍵、多選、自定義節點圖標、自定義右鍵菜單、跨頁面保存狀態等等,總之我想到的它基本上都有了,而且最值得表揚的是它讓人感覺一點都不慢哦。

jsTree有節點選擇事件,即
復制代碼 代碼如下:

.bind("select_node.jstree", function(e, data) {
//alert(data.rslt.obj.attr("id") + ":" + data.rslt.obj.attr("rel"));
})


其實我認為它更像是節點的單擊事件,因為每次點節點的時候它都會觸發,不管之前該節點是否已經被選中。

近日做個文件管理的東東,需要用到節點的雙擊事件,如雙擊某個節點打開該節點的編輯頁面。

jstree雖然有雙擊事件,但是并非針對節點的,而是你雙擊樹所在區域就會觸發,如上圖任何一個地方。

離節點雙擊事件最接近的應該就是節點選擇事件,因此又是“照葫蘆畫瓢”啦。

分析
在第833行 this.get_container() 后是節點的單擊事件
復制代碼 代碼如下:

.delegate("a", "click.jstree", $.proxy(function (event) {
event.preventDefault();
this.select_node(event.currentTarget, true, event);
}, this))


同樣我再這里插入節點雙擊事件
復制代碼 代碼如下:

.delegate("a", "dblclick.jstree", $.proxy(function(event) {
event.preventDefault();
this.dblclick_node(event.currentTarget, true, event);
}, this))


接著,我再實現 dblclick_node 方法就可以了。

在第928行找到 select_node 的代碼,比較復雜。但里面90%對于雙擊來說是沒有用處的,如處理單選、多選、保存選擇結果到cookies等。因此 dblclick_node 方法的實現要比 select_node 簡單很多。
復制代碼 代碼如下:

dblclick_node: function(obj, check, e) {
obj = this._get_node(obj);
if (obj == -1 || !obj || !obj.length) { return false; }
this.__callback({ "obj": obj });
},


OK,就這樣了。

使用例子
跟 select_node 用法一樣
復制代碼 代碼如下:

.bind("dblclick_node.jstree", function(e, data) {
//alert(data.rslt.obj.attr("id") + ":" + data.rslt.obj.attr("rel"));
})


改造后的代碼下載  /201007/yuanma/jquery.jstree.rar
順便說說
jstree 跟另一個插件jquery validate 是水火不容的,當兩者共存時,jstree雖然也可以構造樹出來,但如僵尸一般不能展開。這里mark一個,日后試試能否修改。

作者:Bruce(編程的藝術世界)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平果县| 磴口县| 乌兰浩特市| 江阴市| 永兴县| 杭锦旗| 江源县| 钦州市| 修水县| 五原县| 西昌市| 云霄县| 北宁市| 济阳县| 合江县| 舞阳县| 南投县| 樟树市| 宁远县| 屏山县| 唐海县| 临安市| 加查县| 富川| 阿鲁科尔沁旗| 上蔡县| 江油市| 渝中区| 彩票| 民丰县| 合阳县| 汉中市| 柘城县| 砀山县| 磴口县| 南阳市| 吴川市| 宣武区| 宁津县| 阿坝县| 湘西|