繁体   English   中英

如何停止警报框按进入循环?

[英]How to stop alert box press enter loop?

当用户在文档上按Enter键时,我会显示一个带alert()的警告框。

浏览器(Mac OS X 10.8.4上的Chrome 27)的默认行为是当您将注意力集中在警告框上时按Enter键,它将关闭它。 这将触发文档上的输入,再次显示警告框。 你可以看到它如何循环。

请注意,当我使用鼠标在警告框中单击“确定”时,循环不会发生。

如何防止这种循环?

一个例子(我使用它的真实方式要复杂得多):

$(document).keyup(function(e) {
    e.preventDefault();

    var keyCode = e.keyCode || e.which;

    if (keyCode == 13) {
        alert('Hello world!');
    }

    return false;
});

您可以委派keydown事件并使用stopPropagation()来防止事件在警告对话框中触发时冒泡到文档,如下所示: http//jsfiddle.net/KNyzc/

$(document).on( "keydown", function(e) {
    e.stopPropagation();
    var keyCode = e.keyCode || e.which;

    if (keyCode == 13) {
        alert('Hello world!');
    }
});

(实际上,你根本不需要使用stopPropagation 。只需使用keydown事件。)

暂无
暂无

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

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