jQuery Treeview右键菜单绑定技巧

treeview 的右键菜单功能,挺实用的一个小技巧,尤其是在做文件管理、后台系统这类带层级结构的页面时。你可以用右键点某个节点,弹出菜单,操作比如“编辑”、“删除”啥的,体验也更直观。实现起来也不复杂,主要是配合jQuerycontextmenu事件和jQuery UIMenu组件。

树形结构用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 UIMenu组件,建议顺便熟悉下它的 API,挺灵活。

    • zip 文件大小:26.15KB