上下文菜单打开鼠标左键单击事件发生的位置

时间:2017-06-17 01:26:25

标签: javascript contextmenu

我有一个wicket应用程序,其中搜索结果显示有上下文菜单图标(请参阅下面的内容)

Report with context menu

我正在尝试在发生鼠标左键单击事件的图标上准确打开上下文菜单。但是,上下文菜单显示在该图标

下方

这是我到目前为止尝试过的代码

HTML

<span href="#" id="contextMenuIcon13">
    <div class="contextCSS">
        <span class="fa fa-bars fa-2x" border="0"></span>
    </div>
</span>

检查鼠标点击坐标的JS代码

$(menu).html(buildItems(items));
    // Detect mouse position
    var d = {}, x, y;
    if( self.innerHeight ) {
        d.pageYOffset = self.pageYOffset;
        d.pageXOffset = self.pageXOffset;
        d.innerHeight = self.innerHeight;
        d.innerWidth = self.innerWidth;
    } else if( document.documentElement &&
        document.documentElement.clientHeight ) {
        d.pageYOffset = document.documentElement.scrollTop;
        d.pageXOffset = document.documentElement.scrollLeft;
        d.innerHeight = document.documentElement.clientHeight;
        d.innerWidth = document.documentElement.clientWidth;
    } else if( document.body ) {
        d.pageYOffset = document.body.scrollTop;
        d.pageXOffset = document.body.scrollLeft;
        d.innerHeight = document.body.clientHeight;
        d.innerWidth = document.body.clientWidth;
    }
    (e.pageX) ? x = e.pageX : x = e.clientX + d.scrollLeft;
    (e.pageY) ? y = e.pageY : y = e.clientY + d.scrollTop;

    // Show the menu
    $(document).unbind('click');
    $(menu).css({ top: y, left: x }).fadeIn(o.inSpeed);

上面的代码可以使用,菜单显示在下面。顶级财产似乎搞砸了。有解决方案吗感谢

0 个答案:

没有答案