18

我成功地禁用了我正在使用 jquery 处理的页面上的右键单击事件。我想创建一个自定义右键菜单。我怎样才能做到这一点?这是否需要相关的 css 设置才能使其工作(即“位置”)?

4

3 回答 3

11

有各种 jQuery 上下文菜单插件可供使用:

于 2009-09-20T02:13:55.797 回答
3

这个例子有效,虽然它很俗气。您可以在上下文菜单处理程序中执行的操作是在屏幕上的特定位置显示一个 DIV,其中包含您选择的项目。据我所知,无法自定义右键单击元素时出现的上下文菜单中的项目。

<html>
  <head>
    <title>Context menu test</title>  
    <style type="text/css">
      .element {
        background-color: blue;
        height: 300px;
        width: 300px;
      }

      .popup {
        background-color: red;
        border: 1px solid black;
        width: 100px;
        height: 100px;
        position: absolute;
       }
    </style>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
      $(function() {
          $(".element").contextmenu
          (
            function(e) {
              $("div.popup").remove();
              $("<div class='popup'>Hi</div>").appendTo("body")
                .css("left", e.pageX)
                .css("top", e.pageY)
                .show();
              e.preventDefault();  // return false; also works
            }
          );
        }
      );

      $.fn.contextmenu = function(func) {
        return this.bind("contextmenu", func);
      }
    </script>
  </head>
  <body>
    <div class="element"></div>
  </body>
</html>
于 2009-09-20T02:27:24.400 回答
1

还有这个插件:Audero Context Menu。它是免费的,使用起来非常简单。

于 2012-05-22T22:02:59.390 回答