Javascript { var el=e.src元素| | e.target; if(el.classList.contains(className)){ 返回el; }否则{ while(el=el.parentNode){ if(el.classList&&el.clas

Javascript { var el=e.src元素| | e.target; if(el.classList.contains(className)){ 返回el; }否则{ while(el=el.parentNode){ if(el.classList&&el.clas,javascript,jquery,jquery-plugins,contextmenu,right-click,Javascript,Jquery,Jquery Plugins,Contextmenu,Right Click,{ var el=e.src元素| | e.target; if(el.classList.contains(className)){ 返回el; }否则{ while(el=el.parentNode){ if(el.classList&&el.classList.contains(className)){ 返回el; } } } 返回false; } 函数getPosition(e){ var posx=0,posy=0; 如果(!e)var e=window.event; 如果(e.pag

{ var el=e.src元素| | e.target; if(el.classList.contains(className)){ 返回el; }否则{ while(el=el.parentNode){ if(el.classList&&el.classList.contains(className)){ 返回el; } } } 返回false; } 函数getPosition(e){ var posx=0,posy=0; 如果(!e)var e=window.event; 如果(e.pageX | e.pageY){ posx=e.pageX; posy=e.pageY; }else if(e.clientX | e.clientY){ posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft; posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop; } 返回{ x:posx, y:波西 } } //您的菜单类名 var taskItemClassName=“thumb”; var contextMenuClassName=“上下文菜单”,contextMenuItemClassName=“上下文菜单项”,contextMenuLinkClassName=“上下文菜单链接”,contextMenuActive=“上下文菜单--活动”; var taskItemInContext、clickCoords、clickCoordsX、clickCoordsY、menu=document.querySelector(“上下文菜单”),menuItems=menu.queryselectoral(“上下文菜单项”); 变量menuState=0,menuWidth,menuHeight,menuPosition,menuPositionX,menuPositionY,windowWidth,windowHeight; 函数initMenuFunction(){ contextListener(); 单击侦听器(); keyupListener(); resizeListener(); } /** *侦听上下文菜单事件。 */ 函数contextListener(){ document.addEventListener(“上下文菜单”,函数(e){ taskItemInContext=单击InsideElement(e,taskItemClassName); 如果(taskItemInContext){ e、 预防默认值(); toggleMenuOn(); 位置菜单(e); }否则{ taskItemInContext=null; 切换Menuoff(); } }); } /** *侦听单击事件。 */ 函数clickListener(){ 文档.添加的列表器(“单击”,函数(e){ var clickeElIsLink=clickInsideElement(e,contextMenuLinkClassName); 如果(单击eElisLink){ e、 预防默认值(); menuItemListener(单击eElisLink); }否则{ var按钮=e.哪个| | e.按钮; 如果(按钮===1){ 切换Menuoff(); } } }); } /** *侦听键控事件。 */ 函数keyupListener(){ window.onkeyup=函数(e){ 如果(例如keyCode===27){ 切换Menuoff(); } } } /** *窗口调整事件侦听器 */ 函数resizeListener(){ window.onresize=函数(e){ 切换Menuoff(); }; } /** *打开自定义关联菜单。 */ 函数toggleMenuOn(){ 如果(菜单状态!==1){ menuState=1; menu.classList.add(contextMenuActive); } } /** *关闭自定义关联菜单。 */ 函数toggleMenuOff(){ 如果(菜单状态!==0){ menuState=0; menu.classList.remove(contextMenuActive); } } 功能位置菜单(e){ 单击Coords=getPosition(e); clickCoordsX=clickCoords.x; clickCoordsY=clickCoords.y; menuWidth=menu.offsetWidth+4; menuHeight=menu.offsetHeight+4; windowWidth=window.innerWidth; windowHeight=window.innerHeight; 如果((窗口宽度-单击坐标X)7){ log('单击的唱片集名称:'+移动到唱片集SelectedId); } 切换Menuoff(); } initMenuFunction(); })();
/*用于正文填充和内容*/
正文{padding top:70px;}
LIA{文本装饰:无!重要;}
/*仅缩略图*/
.拇指{
边缘底部:30px;
}
.thumb:悬停a、.thumb:活动a、.thumb:焦点a{
边框:1px纯紫色;
}
/**************用于上下文菜单***********/
/*上下文菜单*/
.关联菜单{显示:无;位置:绝对;z索引:9999;填充:12px 0;宽度:200px;背景色:#fff;边框:实心1px#dfdfdff;框阴影:1px 1px 2px#cfcfcfcf;}
.上下文菜单--活动{display:block;}
.context-menu__项{列表样式:无;边距:0;填充:0;}
.context-menu__项{显示:块;页边距底部:4px;}
.context-menu__项:最后一个子项{页边距底部:0;}
.上下文菜单链接{显示:块;填充:4px 12px;颜色:#0066aa;文本装饰:无;}
.上下文菜单链接:悬停{color:#fff;背景色:#0066aa;}
.context-menu_uu项ul{位置:绝对;空白:nowrap;z-index:1;左:-9999em;}
.context-menu_uuitems>li:hover>ul{left:auto;padding top:5px;最小宽度:100%;}
.context-menu_uuitems>li li ul{左边框:1px实心35; fff;}
.context-menu_uuitems>li-li:hover>ul{left:100%;top:-1px;}
.context-menu_uu项ul{背景色:#ffffff;填充:7px 11px;列表样式类型:无;文本装饰:无;左边距:40px;}
.page媒体.上下文菜单项ul li{display:block;}
/**************对于上下文菜单*********/

缩略图库(右键单击可查看关联菜单)
$(document).bind("contextmenu", function(event) {
    event.preventDefault();
    $("<div class='custom-menu'>Custom menu</div>")
        .appendTo("body")
        .css({top: event.pageY + "px", left: event.pageX + "px"});
});
$(document).bind("click", function(event) {
    $("div.custom-menu").hide();
});
.custom-menu {
    z-index:1000;
    position: absolute;
    background-color:#C0C0C0;
    border: 1px solid black;
    padding: 2px;
}
$(document).bind("contextmenu", function(event){
$("#contextmenu").css({"top": event.pageY +  "px", "left": event.pageX +  "px"}).show();
});
$(document).bind("click", function(){
$("#contextmenu").hide();
});
$(function() {
  function createSomeMenu() {
    var all_array = '{';
    var x = event.clientX,
      y = event.clientY,
      elementMouseIsOver = document.elementFromPoint(x, y);
    if (elementMouseIsOver.closest('a')) {
      all_array += '"Link-Fold": {"name": "Link", "icon": "fa-external-link", "items": {"fold2-key1": {"name": "Open Site in New Tab"}, "fold2-key2": {"name": "Open Site in Split Tab"}, "fold2-key3": {"name": "Copy URL"}}},';
    }
    if (elementMouseIsOver.closest('img')) {
      all_array += '"Image-Fold": {"name": "Image","icon": "fa-picture-o","items": {"fold1-key1": {"name":"Download Image"},"fold1-key2": {"name": "Copy Image Location"},"fold1-key3": {"name": "Go To Image"}}},';
    }
    all_array += '"copy": {"name": "Copy","icon": "copy"},"paste": {"name": "Paste","icon": "paste"},"edit": {"name": "Edit HTML","icon": "fa-code"}}';
    return JSON.parse(all_array);
  }

  // setup context menu
  $.contextMenu({
    selector: 'body',
    build: function($trigger, e) {
      return {
        callback: function(key, options) {
          var m = "clicked: " + key;
          console.log(m);
        },
        items: createSomeMenu()
      };
    }
  });
});
<select class="custom-select" id="list" multiple></select>

<div class="dropdown-menu" id="menu-right-click" style=>
    <h6 class="dropdown-header">Actions</h6>
    <a class="dropdown-item" href="" onclick="option1();">Option 1</a>
    <a class="dropdown-item" href="" onclick="option2();">Option 2</a>
</div>

<script>
    $("#menu-right-click").hide();

    $(document).on("contextmenu", "#list", function (e) {
        $("#menu-right-click")
            .css({
                position: 'absolute',
                left: e.pageX,
                top: e.pageY,
                display: 'block'
            })
        return false;
    });

    function option1() {
        // something you want...
        $("#menu-right-click").hide();
    }

    function option2() {
        // something else 
        $("#menu-right-click").hide();
    }
</script>