我想在用户按下给定元素上的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中的体验)