簡體   English   中英

如何在光標坐標處打開自己的上下文菜單?

[英]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 其次,您需要將pageXpageY的實際值提供給lefttop 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM