Bootstrap风格的zTree右键菜单

HTML:

CSS:

.dropdown-menu { display: block; } /* 右键菜单 - end */

JS:

boundsY) { Y = {"top": mouseY - menuHeight + $(window).scrollTop()}; } else { Y = {"top": mouseY + $(window).scrollTop()}; } if ((mouseX + menuWidth > boundsX) && ((mouseX - menuWidth) > 0)) { X = {"left": mouseX - menuWidth + $(window).scrollLeft()}; } else { X = {"left": mouseX + $(window).scrollLeft()}; } // If context-menu's parent is positioned using absolute or relative positioning,// the calculated mouse position will be incorrect. // Adjust the position of the menu by its offset parent position. parentOffset = $menu.offsetParent().offset(); X.left = X.left - parentOffset.left; Y.top = Y.top - parentOffset.top; return $.extend(tp,X); } }; /* CONTEXT MENU PLUGIN DEFinitioN * ========================== */ $.fn.contextmenu = function (option,e) { return this.each(function () { var $this = $(this),data = $this.data('context'),options = (typeof option == 'object') && option; if (!data) $this.data('context',(data = new ContextMenu($this,options))); if (typeof option == 'string') data[option].call(data,e); }); }; $.fn.contextmenu.Constructor = ContextMenu; /* APPLY TO STANDARD CONTEXT MENU ELEMENTS * =================================== */ $(document) .on('contextmenu.context.data-api',function () { $(toggle).each(function () { var data = $(this).data('context'); if (!data) return; data.closemenu(); }); }) .on('contextmenu.context.data-api',toggle,function (e) { $(this).contextmenu('show',e); e.preventDefault(); e.stopPropagation(); }); }(jQuery));
rush:js;"> /* 以下方法是通过上面的js插件封装的方法 */ /*   parentNode(zTree容器 || 指定的节点) */ function initzTreeRightMenu(parentNode) { //树形菜单右击事件 $('li,a',$(parentNode)).contextmenu({ target: '#zTreeRightMenuContainer',//此设置项是zTree的容器 before: function (e,element,target) { //当前右击节点ID var selectedId = element[0].tagName == 'LI' ? element.attr('id') : element.parent().attr('id'); //根据节点ID获取当前节点详细信息 curSelectNode = zTreeObj.getNodeByTId(selectedId); //当前节点的层级 var level = curSelectNode.level; level = 0; //选中当前右击节点 zTreeObj.selectNode(curSelectNode); //根据当前节点层级显示相应的菜单 $('#zTreeRightMenuContainer ul.dropdown-menu[level="' + level + '"]').removeClass('hide').siblings().addClass('hide'); },onItem: function (context,e) { var action = $(e.target).attr('action'); this.closemenu(); if (action) { zTreeRightMenuFuns[action](); } } }); }

步骤:

1、引入zTree相关js、css文件(以我自己的项目为例:jquery.ztree.all-3.5.min.js,zTreeStyle.css);

2、将上面给出的右键菜单插件另存为js文件引入页面(以我自己的项目为例:bsContextmenu.js)

3、在页面初始化zTree之后,调用上面的方法:initzTreeRightMenu('#schemaMgrTree'); // ‘#schemaMgrTree' 是我自己项目的zTree容器ID

备注:

1、假如zTree中有异步载入的节点(以我自己项目为例:zTree中有部分节点是展开了父节点之后才加载的,像这种情况则需要在 zTree 的 onExpandFun 里面绑定当前节点的子节点)

rush:js;"> function onExpandFun(event,treeId,treeNode) { /* 展开当前节点执行的代码.... *///绑定当前展开节点的子节点右击事件 initzTreeRightMenu('#' + treeNode.tId); //treeNode.tId 是当前展开节点的ID }

以上所述是小编给大家介绍的Bootstrap风格的zTree右键菜单。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

相关文章

Bootstrip HTML 查询搜索常用格式模版 <form class=&...
如何在按钮上加红色数字 您可以使用Bootstrap的badge组件来在...
要让两个按钮左右排列,你可以使用 Bootstrap 的网格系统将它...
是的,可以将status设置为布尔类型,这样可以在前端使用复选...
前端工程师一般用的是Bootstrap的框架而不是样式,样式一般自...
起步导入:<linkrel="stylesheet"href="b...