`

针对Ztree的右键弹出菜单(jquery.popupSmallMenu.js)

阅读更多
例子效果:




右键菜单方便好用的有很多,长用的为jquery contextMenu.
官网: http://www.trendskitchens.co.nz/jquery/contextmenu/
用法: $("table td").contextMenu("myMenu")
问题: 可以看出右键菜单需要制定一个绑定的对象(table td), 但zTree要绑定事件,还需要获得每个节点的li,不是很好,它本身提供右键事件和右键菜单(不是很好看), 所以我们可以在右键事件位置下手, 自己仿照jquery ContextMenu.js 写一个插件(jquery.popupSmallMenu.js):

在ztree触发右键事件时,弹出菜单:

1.使用:
ztree 右键事件:
callback: {
    onRightClick:OnRightClick
}

function OnRightClick(event, treeId, treeNode) {
    ztree.selectNode(treeNode);
    if(treeNode) {
//弹出菜单
        $("#menu").popupSmallMenu({
            event : event,
            onClickItem  : function(item) {
               chuli(treeNode,item);
    }
        });

    }
}

Html:

<ul id="menu"  class="small-menu">
<li class="edit"><a href="#">编辑</a></li>
<li class="cut"><a href="#">添加</a></li>
<li class="copy"><a href="#">删除</a></li>

<li class="small-menu-separator"></li>
<li class="delete"><a href="#"><span class="icon icon-edit"></span>Zoom Out</a></li>
</ul>

CSS 样式 仿照jquery ContextMenu:
.small-menu {
    position: absolute;
	width: 120px;
	z-index: 99999;
	border: solid 1px #CCC;
	background: #EEE;
	padding: 0px;
	margin: 0px;
	display: none;
}

.small-menu li {
   list-style: none;
	padding: 0px;
	margin: 0px;
}
.small-menu li A {
	color: #333;
	text-decoration: none;
	display: block;
	line-height: 20px;
	height: 20px;
	background-position: 6px center;
	background-repeat: no-repeat;
	outline: none;
	padding: 1px 5px;
	padding-left: 28px;
}

.small-menu li a:hover {
	color: #FFF;
	background-color: #3399FF;
}

.small-menu-separator {
    padding-bottom:0;
    border-bottom: 1px solid #DDD;
}

.small-menu LI.edit A { background-image: url(images/page_white_edit.png); }
.small-menu LI.cut A { background-image: url(images/cut.png); }
.small-menu LI.copy A { background-image: url(images/page_white_copy.png); }
.small-menu LI.paste A { background-image: url(images/page_white_paste.png); }
.small-menu LI.delete A { background-image: url(images/page_white_delete.png); }
.small-menu LI.quit A { background-image: url(images/door.png); }


/**
 * @description 
 * 		small popup menu.
 * @deprecated 
 * 		JQuery.js
 * @author Malt
 * @version 1.0
 * Date: 2013-05-22
 */
(function($,undefined){
	 $.fn.popupSmallMenu = function(options) {
	 	var $currMenu = $(this),
	 	defaultOptions = {
	 		event : null,
	 		onClickItem : null
	 	},
	 	options = $.extend(defaultOptions,options);
	 	
	 	var _smallMenu = {
	 		popupSmallMenu : function() {
	 			this._bindItemClick();
	 			this._bindMenuEvent();
	 			this._showMenu();
	 			return $currMenu;
	 		},
	 		_bindMenuEvent : function() {
	 			var thiz = this;
		 		$currMenu.hover(function(){ 	
				},function(){
					thiz._unBindItemClick();
					$currMenu.hide();
				});
				
				$currMenu.click(function(){
					thiz._unBindItemClick();
					$currMenu.hide();
				});
		 	},
		 	_showMenu : function() {
		 		if(!options.event) {
		 			alert('请传入鼠标事件');
		 		}
		 		$currMenu.css({
					top:options.event.clientY+"px",
					left:options.event.clientX+"px",
		            display:"block"
		        });
		 	},
		 	_bindItemClick : function() {
		 		$currMenu.find('li').each(function(index,obj){
 					var $li = $(obj);
	 				var itemIden = $li.attr('class');
	 				$li.bind('click',function(event){
	 					event.stopPropagation();
	 					if(options.onClickItem 
	 							&& typeof options.onClickItem === 'function') {
					 		options.onClickItem(itemIden);
					 	}
	 				});
 				});
		 	}
		 	,
		 	_unBindItemClick : function(){
		 		$currMenu.find('li').each(function(index,obj){
	 				$(obj).unbind();
	 			});
		 	}
	 	};
	 	
	 	return _smallMenu.popupSmallMenu();
	}
})(jQuery);



  • 大小: 8 KB
分享到:
评论

相关推荐

    jquery.zTree.js.rar

    jquery-1.4.4.min.js jquery.ztree.exhide.min.js jquery.ztree.exedit.min.js jquery.ztree.excheck.min.js jquery.ztree.core.min.js jquery.ztree.all.min.js jquery-1.4.4.js jquery.ztree.exhide.js jquery....

    jquery.ztree

    ztree demo jquery.ztree,jquery.ztree.core.js,jquery.ztree.core-3.5.min.js,jquery.ztree.excheck-3.5.min.js,jquery.ztree.all.min.js,jquery.ztree.exedit.js,jquery.ztree.exhide.min.js,jquery-1.4.4.min...

    jquery.ztree.exhide.js

    ztree实现模糊查询需要的依赖包:jquery.ztree.exhide.js

    jquery.ztree.all.js

    用于生成树形组件,javaScript的一个插件,用于使用树形的下拉组件!

    jquery.ztree.core.js

    是一个js文件,zTree实现权限分配所需,可去ztree官网自行下载

    ztree右键菜单源码

    在本文中,我们将深入探讨如何实现ZTree的右键菜单功能,这是一种常见的JavaScript技术,用于在树形数据结构中提供用户交互。ZTree是一个强大的、可定制的jQuery插件,常用于构建树状目录和组织结构。让我们首先了解...

    jquery.ztree.excheck.js

    是一个js,ztree实现权限管理所需的,可自行去ztree官网下载

    zTree树形菜单jquery.rar

    zTree是一款基于jQuery的JavaScript库,专为创建灵活、功能丰富的树形菜单而设计。这个“zTree树形菜单jquery.rar”压缩包提供了一个实际的示例,教你如何利用zTree与MySQL数据库相结合,实现动态生成树形菜单的功能...

    ztree 右键菜单,html的静态的,js和css都有

    在这个压缩包中,你将找到实现ZTree右键菜单所需的HTML、JavaScript(JS)和CSS文件。 首先,我们来理解一下ZTree右键菜单的功能。在ZTree中,右键菜单是通过监听鼠标右键点击事件来触发的,它提供了一种用户友好的...

    jquery.Ztree.js + css

    总之,jQuery ZTree是一个强大且易用的树形控件,通过其丰富的功能和API,我们可以轻松构建出高效、美观的资源管理系统。无论是在后台管理还是前端展示,它都能发挥出色的效果,帮助开发者更好地组织和管理层次化...

    jquery.ztree.core.texttree.js

    ztree添加功能,使其支持字体图标,核心文件jquery.ztree.core.js,欢迎下载。

    jquery.zTree

    **jQuery zTree** 是一款基于JavaScript的开源控件,它利用了流行的 **jQuery** 库,专门用于构建功能丰富的树状结构(tree structure)。在Web开发中,zTree被广泛应用于展示层次化数据,如组织架构、目录导航、...

    JQuery zTree v3.5.47.zip

    JQuery zTree是一款基于JavaScript的开源库,专用于构建交互式的树形菜单。在这个版本v3.5.47中,它继续提供高效、灵活且功能丰富的解决方案,尤其适用于网页中的数据展示和管理。zTree以其简洁的API、丰富的配置...

    使用ztree构建树形菜单,需要引入的js及样式文件

    1. `jquery.ztree.core.js`:这是ZTree的基本功能库,提供了创建、操作和管理树形菜单的核心功能。这个文件是使用ZTree时必不可少的,它包含了节点的添加、删除、修改、展开、折叠等操作,以及事件监听和处理等核心...

    jquery 常用工具集合 jcarousellite_1.0.1.js jquery.lazyload.js

    1.0.1.js(已修改)、jquery.jqzoom.js、jquery.thickbox.js、jquery.jqzoom.js、jquery.lazyload.js、jquery.soChange.js、jquery.uploadify.min.js、jquery.validate.js、jquery.form.js、jquery.weekcalendar.js...

    JQuery zTree v3.3

    JQuery zTree是一款基于JavaScript的开源树形插件,它主要应用于网页开发,提供丰富的树状数据展示功能。zTree v3.3是该插件的一个版本,它在前一版本的基础上进行了优化和增强,旨在提供更高效、更稳定的服务。 在...

    jquery ztree 异步动态加载

    jQuery ZTree是一款强大的JavaScript组件,用于构建具有丰富交互效果的树状菜单或树形控件。在面对大数据量时,ZTree提供了异步加载功能,能够显著提高用户体验,避免一次性加载所有节点导致页面响应速度变慢。 **1...

    官网zTree -- jQuery 树插件 官网压缩包

    官网zTree -- jQuery 树插件 官网压缩包 学习起来很方便,版本 3.x 基本来说没有要求,zTree 在开发中使用 jQuery 11111.4.4;目前简单测试过 jQuery 1.3+ 应该都能正常使用

Global site tag (gtag.js) - Google Analytics