0

想象一个 HTML 表单并加载了 jQuery 库。我希望这样,如果某人当前没有专注于表单字段,并且他们单击 Esc 键,则会弹出一个对话框询问他们是否要关闭表单窗口(因为表单窗口作为新选项卡打开) .

如果我尝试在 $(document) 上捕获它,我遇到的问题是事件冒泡,字段拾取它,因此在字段中按下 Esc 键会导致事件触发。

当没有字段具有焦点时按下 Esc 时,如何有效地(关键字)防止事件冒泡并捕获?

4

2 回答 2

1

您必须使用 If 语句来检查没有任何输入具有焦点:

if ($('input').is(":focus")){ ... }

我的示例中,我使用回车键来检查焦点。

希望这可以帮助。

于 2012-01-09T09:50:20.243 回答
0

试试这个 :

    var cancelClose=false; // This is a global variable

    $(document).ready(function(){
        $('input, textarea,select').each(
                function(){
                    $(this).focus(
                            function(){
                                cancelClose=true;
                            }
                        );
                    $(this).blur(
                            function(){
                                cancelClose=false;
                            }
                        );
                }
        );
    });

然后,在文档键按下事件

说 :

  if (cancelClose)
         return false;
于 2012-01-09T09:51:41.303 回答