jquery UI:当用空格键打开时,对话框立即关闭

时间:2014-08-01 16:50:37

标签: jquery jquery-ui dialog jquery-ui-dialog

正如标题所解释的那样,当空格键上的keydown或keypress-handler打开一个对话框,其中包含一个关闭对话框的自动对焦按钮(默认的ok按钮),然后在keyup上触发按钮。 / p>

这是jsfiddle example

var dialog = $('#d').dialog({ 
    autoOpen: false, 
    buttons: [{text:"ok", click: function () {
                $(this).dialog("close");
            }}] 
});

$(window).keydown(function (event) {
    if (event.which==32 || event.which==13) {
        console.log("TEST");
        dialog.dialog("open");
    } else console.log(event.which);
});

事实上,我的问题与本期相同: jquery-ui-dialog-closes-immediately-when-opened-with-onkeypress-enter-space 但是,我想在keydown(或keypress)上打开对话框,而不是在keyup上打开,如接受的解决方案中所建议的那样。此外,我不想将自动对焦更改为另一个元素,即第二个空格键实际上应该关闭对话框。

1 个答案:

答案 0 :(得分:0)

添加了$('button.ui-button').blur();

JS Code

$(window).keydown(function(event) {
    if (event.which == 32 || event.which == 13) {
        console.log("TEST");
        dialog.dialog("open");
        $('button.ui-button').blur();
    } else
        console.log(event.which);
});

更新了Fiddle