contextmenu必须在特定Div元素上显示

时间:2019-01-28 01:18:25

标签: javascript html contextmenu

我在JsFiddle

中有一个上下文菜单

这是我的代码

JS:

$(document).ready(function () {

        $(document).on('contextmenu', function (e) {
            if (e.target.matches('#menuHere *'))
            {
                const menu = document.querySelector(".menu");
                let menuVisible = false;

                const toggleMenu = command => {
                    menu.style.display = command === "show" ? "block" : "none";
                    menuVisible = !menuVisible;
                };


                const setPosition = ({ top, left }) => {
                    menu.style.left = `${left}px`;
                    menu.style.top = `${top}px`;
                    toggleMenu("show");
                };




                window.addEventListener("click", e => {
                    if(menuVisible)toggleMenu("hide");
                });

                window.addEventListener("contextmenu", e => {
                    e.preventDefault();
                    const origin = {
                        left: e.pageX,
                        top: e.pageY
                    };
                    setPosition(origin);
                    return false;
                });

            }

        else 
        {
                alert('Wrong element');
        }

        });



        });

此代码不起作用。

我的JsFiddle显示上下文菜单,但在“特定Div”中没有显示。 我需要在特定的div id = menuHere上显示contextmenu。

有可能吗?

任何想法都值得赞赏。

0 个答案:

没有答案