javascript - 上下文菜单的 jquery 停止事件

标签 javascript jquery css mouseevent

我正在制作上下文菜单,但我的上下文菜单有问题,当我右键单击时,我希望上下文菜单停在该位置。我试过使用 .stop() 但它不起作用。

这是 JS Fiddle

JQUERY

$(".menu").hide();
$(document).on("contextmenu", ".element", function (e) {

    $(".menu").fadeIn();
    return false;
});

$(document).mouseup(function (e) {
    $(".menu").fadeOut(300);
});



$(document).bind('mousemove', function(e){
    $('.menu').css({
       left:  e.pageX + 20,
       top:   e.pageY
    });
    $(".menu").stop();
});

最佳答案

这是一种检查菜单是否可见的方法,如果可见则不要移动它。

    var $menu = $(".menu").hide();
    $(document).on("contextmenu", ".element", function (e) {
        $menu.fadeIn();
        return false;
    });

    $(document).mouseup(function (e) {
        $menu.fadeOut(300);
    });

    $(document).bind('mousemove', function (e) {
        if ($menu.is(':visible')) {
            return;
        }
        $menu.css({
            left: e.pageX + 20,
            top: e.pageY
        });

    });

DEMO

或者,您可以使用 contextmenu 事件来设置菜单位置,而无需使用 mousemove。

   $(document).on("contextmenu", ".element", function (e) {
        $menu.css({
            left: e.pageX + 20,
            top: e.pageY
        }).fadeIn();
        return false;
    });

DEMO 2

关于javascript - 上下文菜单的 jquery 停止事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284889/

相关文章:

html - 隐藏大中型设备的导航栏切换按钮

javascript - Chrome : JQuery animate; only appears to work when selected in developer tools

c# - 将 javascript 数组传递给 c# 方法

javascript - 数字自动收录器计数到值然后停止

javascript - 悬停时显示隐藏的 div

javascript - jQuery - 窗口滚动后可拖动位置问题

javascript - 如何检查输入字段以防 Angular 2 中的值发生更改

javascript - "visit each door once"问题的规范算法

css - 相对父级的位置绝对高度

javascript - 我可以用 jQuery 或 JavaScript 更改此 CSS 吗?