Jquery - 上下文菜单 - 右键单击

发布于 2024-12-04 23:12:49 字数 1619 浏览 1 评论 0原文

我使用 jquery 插件 - ContextMenu。 - http://abeautifulsite.net/blog/2008/09/jquery- context-menu-plugin/

我在页面中央有一个 div。我在点中有背景图像。我需要它只使用 jquery 右键单击​​背景图像。如果单击背景图像,那么我想显示上下文菜单。如果单击 id 为 divPage 的 div,则不会发生任何情况。

感谢您的建议或可能的其他解决方案。

HTML

<body>
<form id="formBackground" method="post">
<ul id="myMenu" class="contextMenu">
                    <li class="insert"><a href="#insert">Add New</a></li>       
                    <li class="edit"><a href="#edit">Edit</a></li>                  
                    <li class="delete"><a href="#delete">Delete</a></li>            
                </ul>

    <div id="divPage">
Text.
    </div>
</form>

CSS

body, html {
height: 100%;
}

body{
padding: 0px;
margin: 0px;
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 12px;
color: white;
background-image: url('../images/backgrounds/bg.jpg');
background-repeat:no-repeat;
background-position:top;
}

div#divPage{
width: 800px;
height: 300px;
margin: auto;
}

JS

$('body').bind('mousedown', function (evt) {

                switch (evt.which) {       
            case 3:
            if(evt.target == $('body')[0]) {
                //Show context menu
            }
            break;
    }                

            });

I use a plugin for jquery - ContextMenu. -
http://abeautifulsite.net/blog/2008/09/jquery-context-menu-plugin/

I have a div in the center of the page. I have the background-image in the points. I need it to only using jquery rightclick on the background-image. If you click on the background-image, so I want to display the ContextMenu. If you click the div with id divPage, nothing Happens.

Thanks for the advice or Possibly another solution.

HTML

<body>
<form id="formBackground" method="post">
<ul id="myMenu" class="contextMenu">
                    <li class="insert"><a href="#insert">Add New</a></li>       
                    <li class="edit"><a href="#edit">Edit</a></li>                  
                    <li class="delete"><a href="#delete">Delete</a></li>            
                </ul>

    <div id="divPage">
Text.
    </div>
</form>

CSS

body, html {
height: 100%;
}

body{
padding: 0px;
margin: 0px;
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 12px;
color: white;
background-image: url('../images/backgrounds/bg.jpg');
background-repeat:no-repeat;
background-position:top;
}

div#divPage{
width: 800px;
height: 300px;
margin: auto;
}

JS

$('body').bind('mousedown', function (evt) {

                switch (evt.which) {       
            case 3:
            if(evt.target == $('body')[0]) {
                //Show context menu
            }
            break;
    }                

            });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

姐不稀罕 2024-12-11 23:12:49

我认为你把事情过于复杂化了。

首先,我在创建上下文菜单的代码中的任何位置都看不到您的 List

其次,您需要做的是:

$("idOfTheObjectYouWantToHaveAMenuOn").contextMenu({menu:"yourList"});

I think you are over-complicating things.

Firstly I do not see your List anywhere in your code that creates the context menu.

Secondly all you need to do is:

$("idOfTheObjectYouWantToHaveAMenuOn").contextMenu({menu:"yourList"});
ι不睡觉的鱼゛ 2024-12-11 23:12:49

为什么不让上下文菜单在点击 div 时弹出呢?如果您需要仅通过单击背景图像来显示菜单,则需要将图像放入 div 本身并设置其样式,使其像背景图像一样工作。你可以使用 css z-index 和绝对位置来做到这一点

why not let the contextmenu pop up when the div itself is clicked? if you need to show up the menu only by clicking on the bg image you need to put the image in the div itself and style it so it acts like an bg image. you can do this with css z-index and position absolute

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文