[英]How to open own context menu at cursor coordinates?
我有我想要調用的contextmenu並將其坐標設置為X和Y坐標。 我怎樣才能做到這一點?
https://jsfiddle.net/coolerprinter/xg10vzeL/
此代碼無效且無效:
$("body").on("contextmenu", function(e){
var x = function(e) {
return e.pageX
};
var y = function(e) {
return e.pageY
};
$(".contextmenu").css({
"display": "block",
"left": x,
"top": y
});
return false;
});
首先,您需要將事件掛鈎到document
,而不是body
。 其次,您需要將pageX
和pageY
的實際值提供給left
和top
CSS屬性,而不是函數。 嘗試這個:
$(document).on("contextmenu", function(e) {
e.preventDefault();
$(".contextmenu").css({
"display": "block",
"left": e.pageX,
"top": e.pageY
});
});
要將其展開為像普通上下文菜單一樣,當它在其外部發生單擊時它會消失,那么您需要在文檔上添加一個額外的click
處理程序:
$(document).on({
contextmenu: function(e) {
e.preventDefault();
$(".contextmenu").css({
"display": "block",
"left": e.pageX,
"top": e.pageY
});
},
click: function(e) {
var $target = $(e.target);
if ($target.is('.contextmenu') || $target.closest('.contextmenu').length) {
e.preventDefault();
} else {
$(".contextmenu").hide();
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.