簡體   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