代码之家  ›  专栏  ›  技术社区  ›  Joel Harris

jQuery UI-当使用onkey按Enter/Space打开时,对话框立即关闭

  •  2
  • Joel Harris  · 技术社区  · 15 年前

    我想在用户按下给定元素上的enter键或空格键时打开一个jQueryUI对话框。但是,对话框似乎正在处理enter/space键,导致按下默认元素(取消按钮)。对话框几乎一打开就关闭。

    下面是一个简化的演示:

    <script type="text/javascript">
        function Go() {
            $("#dialog").text("Are you sure?").dialog({
                modal: true,
                buttons: {
                    Cancel: function() {
                        $("#dialog").dialog("destroy");
                    },
                    OK: function() {
                        $("#dialog").dialog("destroy");
                    }
                }
            });  // end .dialog
        }
    </script>
    
    <input type="button" value="Test" onkeydown="Go()" />
    <div title="Dialog" style="display: none;" id="dialog"></div>
    

    如果按钮获得焦点,然后用户按空格键,则对话框将打开,然后立即关闭。如果用户按enter键,对话框关闭得很快,甚至不会闪烁(至少这是我在Firefox 3.5.3中的体验)

    1 回复  |  直到 15 年前
        1
  •  4
  •   UK-AL    15 年前

    如果有,请尝试onkeyup。如果行得通,我会给你解释(忙)。

    编辑解释: