td右クリックポップアップメニュー(右クリックパラメータ)
html menu table
css
(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;
}