td右クリックポップアップメニュー(右クリックパラメータ)

3272 ワード

html
  • menu
  • 
    
  • table
  • 
         
             (20)



    (10)
    (10)


    (30)



    (20)
    (10)


    (20)



    (5) (5)
    (5)

    css
    .menu{width:155px;background:#fff;box-shadow:1px 1px 30px #ccc;display:none;position:absolute; text-align: center;}
    .menu ul{margin:0!important;}
    .menu ul li{list-style:none;line-height:35px;border-bottom:1px solid #ddd;}
    .menu ul li:hover{background:#ffdb2c;}
    
    $(function(){
        //               
        document.oncontextmenu = function(){
            return false;
        };
        $(".td_click").unbind("mousedown").bind("mousedown", function (e) {
            // dishid-dish
            console.log(e.currentTarget.dataset.dishid);
            //    
            if(e.which == 3){
                var x = e.clientX; //x  
                var y = e.clientY; //y  
                 //  menu   
                 var menuHeight = $(".menu").height();
                 var menuWidth = $(".menu").width();
                 //          
                 var clintHeight = getClientHeight();
                 var clintWidth = getClientWidth();
                 //  
                 if(menuHeight + y >= clintHeight){
                     y = clintHeight - menuHeight - 8;
                 }
                 if(menuWidth + x >= clintWidth){
                     x = clintWidth - menuWidth - 8;
                 }
                 //           
                 $(".menu").show().css({left:x,top:y});
            } 
        });
    });
    //          
    $(document).click(function(){
        $(".menu").hide();
    });
    
    //    
     function jy_menu(i){
     switch(i){
         case 0:
             alert("      ");break;
         case 1:
             alert("      ");break;
         case 2:
             alert("      ");break;
         default:
             alert("      ");
         }
     }
    //         
     function getClientHeight() {
         var clientHeight = 0;
         if (document.body.clientHeight && document.documentElement.clientHeight) {
             clientHeight = (document.body.clientHeight < document.documentElement.clientHeight) ? document.body.clientHeight: document.documentElement.clientHeight;
         } else {
             clientHeight = (document.body.clientHeight > document.documentElement.clientHeight) ? document.body.clientHeight: document.documentElement.clientHeight;
         }
         return clientHeight;
     }
     
    //         
     function getClientWidth() {
         var clientWidth = 0;
         if (document.body.clientWidth && document.documentElement.clientWidth) {
             clientWidth = (document.body.clientWidth < document.documentElement.clientWidth) ? document.body.clientWidth: document.documentElement.clientWidth;
         } else {
             clientWidth = (document.body.clientWidth > document.documentElement.clientWidth) ? document.body.clientWidth: document.documentElement.clientWidth;
         }
         return clientWidth;
     }