正如标题所解释的那样,当空格键上的keydown或keypress-handler打开一个对话框,其中包含一个关闭对话框的自动对焦按钮(默认的ok按钮),然后在keyup上触发按钮。 / p>
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上打开,如接受的解决方案中所建议的那样。此外,我不想将自动对焦更改为另一个元素,即第二个空格键实际上应该关闭对话框。
答案 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