【问题标题】:Create a specific menu right click on a html select option [duplicate]创建特定菜单右键单击html选择选项[重复]
【发布时间】:2014-10-15 15:35:27
【问题描述】:

我需要创建一个 html 选择,如果单击右键选择了一个选项,则会显示一个带有一些选项的新弹出窗口。重要的是当用户单击右键时选项不会隐藏(所以我不能使用 onchange 或 onclick)。

我也尝试在选项上使用 onclick,但在 Chrome 上不起作用。

有什么想法吗?谢谢!

【问题讨论】:

  • 做你的功课 :) stackoverflow.com/questions/4495626/…... 网上可以找到更多的解决方案...
  • 非常感谢!我不得不稍微修改一下插件。老实说,我在互联网上搜索过,但找不到任何有用的东西......而且我没有看到这篇文章

标签: jquery html select right-click


【解决方案1】:

你试过oncontextmenu吗?
假设element 是将被右键单击的元素:

document.body.addEventListener('click', function() {
  document.getElementById("rightclicked").style.display = "none";
})
document.body.addEventListener('contextmenu', function() {
  document.getElementById("rightclicked").style.display = "none";
})
document.getElementById("element").addEventListener('contextmenu', function(ev) {
  ev.stopPropagation();
  ev.preventDefault();
  rightclick();
  return false;
}, false);

function rightclick() {
  var e = window.event;
  var cantThinkOfAName = document.getElementById("rightclicked");
  cantThinkOfAName.style.display = "block";
  cantThinkOfAName.style.left = e.clientX + "px";
  cantThinkOfAName.style.top = e.clientY + "px";
}
<div id="element">right click</div>
<div id="rightclicked" style="background-color: rgb(200, 200, 200);z-index: 100000; width:150px;height: auto; position: absolute; display: none;">
  <ul style="margin: 0px; padding: 0px; text-align: center; list-style-type: none; text-indent: 0px">
    <a href="#">
      <li style="border-top: none; margin-top: -1px">
        <p>Item1</p>
      </li>
    </a>
    <a href="#">
      <li>
        <p>Item2</p>
      </li>
    </a>
    <a href="#">
      <li>
        <p>Item3</p>
      </li>
    </a>
    <a href="#">
      <li style="margin-bottom: 1px;">
        <p>Item4</p>
      </li>
    </a>
  </ul>
</div>

【讨论】:

  • 选择标签有点复杂,因为当您单击它时,所有元素都会被压缩。无论如何,谢谢!
  • @user1516059 因为你可以将上下文菜单位置属性设置为position:absolute; 这样它在显示时不会影响布局
  • @user1516059 我已经在上面提供了一个完整的上下文菜单,如果你愿意,只需更改一些 css
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
相关资源
最近更新 更多