上次发表网山寨版webqq jquery qq 网之后都没进行更新了,今天更新下,也可以到网站 查看最新的更新。
好了新上个界面让大家看下。
看到界面大家应该清楚今天要说的是:右键菜单操作。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="demoStyle/demo.css" type="text/css">
<link rel="stylesheet" href="zTreeStyle/zTreeStyle.css" type="text/css">
<link rel="stylesheet" href="themes/base/jquery.ui.all.css" type="text/css" />
<link rel="Stylesheet" href="themes/default.css" type="text/css" />
<script src="js/jquery-1.6.min.js" type="text/javascript"></script>
<script src="js/ui/jquery.ui.core.js" type="text/javascript"></script>
<script src="js/ui/jquery.ui.widget.js" type="text/javascript"></script>
<script src="js/ui/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="js/ui/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="js/ui/jquery.ui.position.js" type="text/javascript"></script>
<script src="js/ui/jquery.ui.resizable.js" type="text/javascript"></script>
<script src="js/ui/jquery.ui.dialog.js" type="text/javascript"></script>
<script type="text/javascript" src="js/jquery.ztree-2.6.min.js"></script>
<script type="text/javascript" src="asyncData/demoData.js"></script>
<script type="text/javascript">
$(function () {
$("#dialog").dialog({
autoOpen: true,
title: "<span style='color:red'>task</span>",
position: ['right', 'top'],
zIndex: 3999,
width: 250,
height: 500,
open: function (event, ui) {
var $dialog = $(this);
var atext = $(".ui-dialog-titlebar-close").replaceWith('<p class="ui-xlgwr"><span class="ui-icon ui-icon-minusthick">minusthick</span> <span class="ui-icon ui-icon-extlink">extlink</span><span class="ui-icon ui-icon-closethick">close</span></p>');
$(".ui-xlgwr>span").click(function () {
var spantext = $(this).text();
if (spantext == "extlink") {
$dialog.dialog({
position: ['right', 'top'],
width: 300,
height: 500
}); $dialog.dialog({
position: ['right', 'top'],
width: 300,
height: 500
});
} else if (spantext == "minusthick") {
$dialog.dialog({
position: ['right', 'top'],
width: 250,
height: 0
});
$dialog.dialog({
position: ['right', 'top'],
width: 250,
height: 0
});
} else if (spantext == "close") {
$dialog.dialog("close");
} else {
alert("请选择正确的操作,谢谢.");
}
});
}
});
var i = 0;
$("#Button1").click(function () {
var id = "mess" + i;
var right = i * 20 + ($(window).width() / 2) - 300;
var top = i * 20 + ($(window).height() / 2) - 250;
var _editRankDlg = $("<div id=" + id + "></div>").appendTo("#contents");
_editRankDlg.load("message.html?id=" + i, function () {
setName(i);
sendButton(i);
_editRankDlg.dialog({
modal: false,
show: "slide",
hide: "slide",
width: "450",
resizable: false,
height: "500",
position: [right, top], //默认单位就是px
title: "message" + i,
close: function () {
_editRankDlg.remove();
}
});
i++;
});
});
});
//---------------------------右键菜单----------------------------------------
var zTree1;
var setting;
setting = {
editable: true,
checkable: false,
edit_removeBtn: false,
callback: {
dblclick: zTreeOnDblclick,
drag: zTreeOnDrag,
drop: zTreeOnDrop,
rename: zTreeOnRename,
rightClick: zTreeOnRightClick
}
};
var rMenu;
$(document).ready(function () {
refreshTree();
rMenu = document.getElementById("rMenu");
$("body").bind("mousedown",
function (event) {
if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length > 0)) {
rMenu.style.visibility = "hidden";
}
});
});
var i = 0;
var uright = "", utop = "";
function zTreeOnDblclick(event, treeId, treeNode) {
if (treeNode) {
if ($("#" + treeNode.id).text() != "") {
$("#" + treeNode.id).dialog('moveToTop');
}
else {
var id = treeNode.id;
var right = i * 25 + ($(window).width() / 2) - 300;
var top = i * 25 + ($(window).height() / 2) - 250;
// if ((top + 480) >= $(window).height()) {
// right += 25;
// }
if (uright != "" && uright < right) {
right = uright;
top = utop;
uright = "";
}
treeNode.index = i;
var _editRankDlg = $("<div id=" + id + "></div>").appendTo("#contents");
_editRankDlg.load("message.html?id=" + i, function () {
setName(i);
sendButton(i);
_editRankDlg.dialog({
modal: false,
show: "slide",
hide: "slide",
width: "450",
resizable: false,
height: "500",
position: [right, top], //默认单位就是px
title: treeNode.name,
open: function (event, ui) {
var $dialog = $(this);
var atext = $(".ui-dialog-titlebar-close").replaceWith('<p class="ui-xlgwr"><span class="ui-icon ui-icon-minusthick">minusthick</span> <span class="ui-icon ui-icon-extlink">extlink</span><span class="ui-icon ui-icon-closethick">close</span></p>');
$(".ui-xlgwr>span").click(function () {
var spantext = $(this).text();
if (spantext == "extlink") {
alert($(this).dialog('option', right));
$dialog.dialog({
position: ['center', 'top'],
width: 450,
height: 500
}); $dialog.dialog({
position: ['center', 'top'],
width: 450,
height: 500
});
} else if (spantext == "minusthick") {
$dialog.dialog({
position: ['center', 'top'],
width: 450,
height: 0
});
$dialog.dialog({
position: ['center', 'top'],
width: 450,
height: 0
});
} else if (spantext == "close") {
$dialog.dialog("close");
} else {
alert("请选择正确的操作,谢谢.");
}
});
},
close: function () {
var r = treeNode.index * 20 + ($(window).width() / 2) - 300;
var t = treeNode.index * 20 + ($(window).height() / 2) - 250;
if (uright == "" || uright >= r) {
uright = r;
utop = t;
}
i--;
_editRankDlg.remove();
}
});
i++;
});
}
}
}
function zTreeOnDrag(event, treeId, treeNode) {
alert(" treeId=" + treeId + ";<br/> tId=" + treeNode.tId + "; Name=" + treeNode.name);
}
function zTreeOnDrop(event, treeId, treeNode, targetNode, moveType) {
if (treeNode) {
alert(" treeId=" + treeId + ";<br/> Src Name = " + treeNode.name
+ "; Target Name = " + ((targetNode != null) ? targetNode.name : "root")
+ "; moveType=\"" + moveType + "\"");
} else {
alert(" treeId=" + treeId + ";<br/> 拖拽放弃。");
}
}
function zTreeOnRename(event, treeId, treeNode) {
alert(" treeId=" + treeId + ";<br/> tId=" + treeNode.tId + "; Name=" + treeNode.name);
}
function refreshTree() {
zTree1 = $("#treeDemo").zTree(setting, zNodes);
}
//---------------------------右键事件----------------------------------------
function addTreeNode(ty) {
hideRMenu();
if (ty == 0)
zTree1.addNodes(zTree1.getSelectedNode(), [{ name: "分组", icon: "demoStyle/img/people.gif"}]);
else
zTree1.addNodes(zTree1.getSelectedNode(), [{ name: "好友"}]);
}
function removeTreeNode() {
hideRMenu();
var node = zTree1.getSelectedNode();
if (node) {
if (node.nodes && node.nodes.length > 0) {
var msg = "要删除的节点是父节点,如果删除将连同子节点一起删掉。\n\n请确认!";
if (confirm(msg) == true) {
zTree1.removeNode(node);
}
} else {
if (confirm("确定要删除所选择项吗?")) {
zTree1.removeNode(node);
}
}
}
}
function showRMenu(type, x, y) {
$("#rMenu ul").show();
if (type == "root") { //添加分组
$("#m_del").hide();
$("#m_del1").hide();
$("#m_add1").hide();
}
if (type == "node") { //添加好友,删除好友
$("#m_del").hide();
$("#m_add").hide();
$("#m_add1").hide();
}
if (type == "node1") {//添加好友,删除组
$("#m_add").hide();
$("#m_del1").hide();
}
x = $(window).width - $("#dialog").width();
y = y - 30;
$("#rMenu").css({ "top": y + "px", "left": x + "px", "visibility": "visible" });
}
function hideRMenu() {
if (rMenu) rMenu.style.visibility = "hidden";
}
function zTreeOnRightClick(event, treeId, treeNode) {
if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) {
zTree1.cancelSelectedNode();
showRMenu("root", event.clientX, event.clientY);
} else if (treeNode && (event.target.tagName.toLowerCase() == "button" || treeNode.nodes != null)) {
zTree1.selectNode(treeNode);
showRMenu("node1", event.clientX, event.clientY);
}
else if (treeNode) {
zTree1.selectNode(treeNode);
showRMenu("node", event.clientX, event.clientY);
}
}
</script>
</head>
<body>
<div id="contents">
</div>
<div id="dialog" title="dialog">
<div class="zTreeDemoBackground">
<ul id="treeDemo" class="tree">
</ul>
</div>
<!-- 菜单-->
<div id="rMenu" style="position: absolute; visibility: hidden;">
<li>
<ul id="m_add" οnclick="addTreeNode(0);">
<li>添加分组</li></ul>
<ul id="m_add1" οnclick="addTreeNode(1);">
<li>添加好友</li></ul>
<ul id="m_del" οnclick="removeTreeNode(0);">
<li>删除该组</li></ul>
<ul id="m_del1" οnclick="removeTreeNode(1);">
<li>删除好友</li></ul>
</li>
</div>
</div>
<button id="Button1">
Open message</button>
</body>
</html>
这里介绍的右键菜单还是ztree自带的 先定义下菜单显示的项
<!-- 菜单-->
<div id="rMenu" style="position: absolute; visibility: hidden;">
<li>
<ul id="m_add" οnclick="addTreeNode(0);">
<li>添加分组</li></ul>
<ul id="m_add1" οnclick="addTreeNode(1);">
<li>添加好友</li></ul>
<ul id="m_del" οnclick="removeTreeNode(0);">
<li>删除该组</li></ul>
<ul id="m_del1" οnclick="removeTreeNode(1);">
<li>删除好友</li></ul>
</li>
</div>
js注册菜单
//---------------------------右键菜单----------------------------------------
var zTree1;
var setting;
setting = {
editable: true,
checkable: false,
edit_removeBtn: false,
callback: {
dblclick: zTreeOnDblclick,
drag: zTreeOnDrag,
drop: zTreeOnDrop,
rename: zTreeOnRename,
rightClick: zTreeOnRightClick
}
};
var rMenu;
$(document).ready(function () {
refreshTree();
rMenu = document.getElementById("rMenu");
$("body").bind("mousedown",
function (event) {
if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length > 0)) {
rMenu.style.visibility = "hidden";
}
});
});
callback绑定事件可以绑定多个事件
具体可以才看ztree事件
具体大家可以代码吧,
想查看的最新的到:IT潮流网