javascript - 右键单击在 Firefox 中不断传播

标签 javascript firefox right-click stoppropagation

我刚刚注意到一些不寻常的事情。这就是我想要实现的目标:

  • 我希望在单击链接时显示一个 div

  • 我希望当我单击文档中的其他位置时 div 消失

  • 我不希望它在单击 div 本身时消失

类似这样的事情:

http://jsfiddle.net/XPmyF/

JS:

(function() {
    var box = $('#box');
    $(document).on('click', function() {
        if (box.css('display') == 'block') {
            box.css('display', 'none');
        }
    });
    $('#start').on('click', function(e) {
        box.css({
            'text': 'Box',
            'position': 'absolute',
            'top': '50px',
            'left': '0',
            'background': '#EEE',
            'border': '1px solid #555',
            'width': '200px',
            'height': '50px',
            'display': 'block'
        });
        e.stopPropagation();
    });

    box.on('click', function(e) {
        e.stopPropagation();
    });
})();​

那个 fiddle 工作得很好,但是当我在 Firefox (15.0.1) 中测试它时,如果右键单击 div,它就会消失,这不是我正在寻找的行为。看来 stopPropagation() 适用于点击,但不适用于 Firefox 中的右键单击。 Chrome 会阻止右键单击传播到文档。

我该如何解决这个问题?

谢谢

最佳答案

使用 event.which 方法来检测单击了哪个按钮。这是 jsfiddle 中的示例.

$(document).on('click', function(event) {
    if (event.which == 1 && box.css('display') == 'block') {
        box.css('display', 'none');
    }
});

关于javascript - 右键单击在 Firefox 中不断传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12430682/

相关文章:

javascript - Firefox 不会重置 jquery 创建的元素

javascript - 使用 JavaScript 检测点击目标?

c# - 按住鼠标右键 move 无边界 Winform,可能使用 native 方法

flash - AS2 : right click detection

javascript - jQuery 图像变形脚本问题

javascript - 使用成功方法不使用 $http.get 从 json-angularjs 调用到外部 url 获取 json 数据

javascript - 推送者存在无法使用 angularjs 和 golang 获取成员

javascript - 如何在复选框选中时启用 Onclick <Button> PHP

javascript - Base64:如何编码/解码页面的整个 HTML 代码

javascript - 是什么导致我在 Firefox 开发者控制台中看到语法错误?