使用jQuery捕获文档上的Esc键,但不捕获内容



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

如果我试图在$(document)上捕获它,我遇到的问题是在字段中出现事件冒泡,所以在字段中按Esc键会导致事件触发。

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

您必须使用If语句来检查是否没有焦点输入:

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

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

希望这能有所帮助。

试试这个:

    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;

相关内容

  • 没有找到相关文章

最新更新