我正在尝试解决一个JQuery对话框小部件的2个问题。
1)当对话框是模态时,在某些计算机屏幕上(缩放和分辨率可能会有所不同),对话框会将滚动条引入文档。在对话框下面显然有一个叠加层,我假设这就是导致滚动条出现的原因。你知道我怎么能避免这种情况发生在i)所有分辨率和ii)任何变焦
2)对于特定对话框,我想让“Enter”按钮产生默认动作。我到目前为止尝试的代码如下,但我无法使其工作。要清楚,我已经查看了解决方案here。 div当然专注于开放。但是,当我按[Enter]时,我会继续在Chrome中收到这些控制台错误。
FOCUS set ... event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.
这是我到目前为止尝试过的代码:
var opts = { modal: true, open: function() { $(this).focus(); }, focus: function(event, ui) { console.log('FOCUS set'); $(this) .keyup(function(e) { var code = (e.keyCode ? e.keyCode : e.which); if (code == 10 || code == 13) alert('Enter key was pressed.'); e.preventDefault(); console.log('key pressed.'); }); }, ... } $('#mydiv').dialog(opts);
答案 0 :(得分:1)
以下是使用Enter:
关闭的解决方案的JavaScript
$(document).ready(function () {
$('#dialog').dialog();
$(document).keydown(function (event) {
var dialog = $('#dialog');
if (dialog.dialog('isOpen')) {
if (event.keyCode === 13) {
dialog.dialog('close');
}
}
});
});
HTML
<div id="dialog" title="Header">
My Window
</div>