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

jquery.jstree 增加節(jié)點的雙擊事件代碼

 更新時間:2010年07月27日 08:53:27   作者:  
本文基于 jsTree 1.0-rc1 版本增加節(jié)點的雙擊事件。
jsTree 是基于jquery的樹插件,支持拖放、復(fù)制、刪除、快捷鍵、多選、自定義節(jié)點圖標(biāo)、自定義右鍵菜單、跨頁面保存狀態(tài)等等,總之我想到的它基本上都有了,而且最值得表揚的是它讓人感覺一點都不慢哦。

jsTree有節(jié)點選擇事件,即
復(fù)制代碼 代碼如下:

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


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

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

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

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

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

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


同樣我再這里插入節(jié)點雙擊事件
復(fù)制代碼 代碼如下:

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


接著,我再實現(xiàn) dblclick_node 方法就可以了。

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

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 用法一樣
復(fù)制代碼 代碼如下:

.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 是水火不容的,當(dāng)兩者共存時,jstree雖然也可以構(gòu)造樹出來,但如僵尸一般不能展開。這里mark一個,日后試試能否修改。

作者:Bruce(編程的藝術(shù)世界)

相關(guān)文章

最新評論

牡丹江市| 芜湖县| 海盐县| 永平县| 永年县| 稻城县| 庆云县| 浮梁县| 边坝县| 清远市| 铁岭市| 玛多县| 凤凰县| 贵南县| 黎川县| 宁南县| 嵊州市| 内江市| 军事| 收藏| 西贡区| 读书| 固阳县| 宁武县| 宣化县| 图们市| 淮阳县| 木里| 绥芬河市| 广饶县| 西平县| 黔西县| 尼勒克县| 微山县| 宣威市| 鄂伦春自治旗| 兰溪市| 益阳市| 沾益县| 温州市| 越西县|