繁体   English   中英

为什么返回带警报的false而不是console.log

[英]Why does return false work with alert but not console.log

我有个问题。 与此HTML:

<div id="d"><div>Click me!</div><div>Or me</div></div>

当我使用此代码时:

$("#d").on("mousedown", "div", function (e){
    console.log('clicked');
    if (e.which == 3) alert('left button clicked');
    return false;
});

它阻止了上下文菜单的显示和警报,但是当我使用此代码时:

$("#d").on("mousedown", "div", function (e){
    console.log('clicked');
    if (e.which == 3) console.log('left button clicked');
    return false;
});

它登录到控制台,但不阻止上下文菜单。 我糊涂了。

这是JSFiddle演示的问题。

哦,如果您碰巧发现重复的东西,请耐心等待。 我确实尝试找到它。

您并没有使用第一个代码阻止上下文菜单。 SOme浏览器只是不再打开它,因为alert窗口已成为焦点。 不是阻止菜单return false ,而是alert本身。

我添加了一个更新的小提琴: http : //jsfiddle.net/2D32L/12/

$("#f").on("contextmenu", "div", function (e) {
    e.preventDefault();
});

有关更多信息,请参见此问题

对于其余部分,我同意Johannes H.的观点 取消上下文菜单的不是返回值,而是警报。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM