jQuery Treeview右键菜单绑定技巧
treeview 的右键菜单功能,挺实用的一个小技巧,尤其是在做文件管理、后台系统这类带层级结构的页面时。你可以用右键点某个节点,弹出菜单,操作比如“编辑”、“删除”啥的,体验也更直观。实现起来也不复杂,主要是配合jQuery的contextmenu
事件和jQuery UI的Menu组件。
树形结构用jQuery Treeview 插件搞定,结构清晰,响应也快。右键事件只要绑在每个上,比如:
$("#treeview").on("contextmenu", "li", function(e) {
e.preventDefault();
const currentNode = $(this);
showContextMenu(currentNode, e.pageX, e.pageY);
});
就是菜单的部分,动态生成也行,提前写好 HTML 也可以。你可以把常用的操作放进去,比如:
function showContextMenu(node, x, y) {
const menu = $("
").addClass("ui-menu").css({
position: "absolute",
top: y + "px",
left: x + "px"
});
$("
编辑 ")
.click(() => editNode(node))
.appendTo(menu);
$("
删除 ")
.click(() => deleteNode(node))
.appendTo(menu);
menu.menu();
$("body").append(menu);
}
别忘了加个全局监听,把菜单点空白处能自动隐藏,页面才清爽:
$[removed]("mousedown", function(e) {
if (!$(e.target).closest(".ui-menu").length) {
$(".ui-menu").remove();
}
});
整体思路比较清晰,适合你在做后台管理系统、文档树、组织架构时用。如果你还没用过jQuery UI
的Menu组件,建议顺便熟悉下它的 API,挺灵活。
26.15KB
文件大小:
评论区