vik*_*sde 7 jquery jquery-ui jquery-dialog
我正在使用jquery对话框小部件来显示模式框.但是当按下F5时,模态打开时不会发生刷新.任何的想法?
有趣的更新:
试试这个演示:http://jqueryui.com/demos/dialog/#modal-message 现在当焦点在"ok"按钮上,然后刷新(F5)工作,但是当按钮没有焦点时,然后它没有.
更新2
实际上我们可以在对话框中添加任何类型的控件,将高度和宽度设置为0 css并设置焦点以使刷新工作.这不是最好的解决方案.我仍在尝试让按键工作.
更新3
以下似乎现在有效:
$(document).keydown(function(e)
{
if (e.which == 116) // key code of the F5 button
{
document.location.reload();
}
});
Run Code Online (Sandbox Code Playgroud)
这似乎是一个普遍的问题,我没有看到一个令人满意的答案.Stack Overflow上有一些类似的问题,我看到的最好的答案是捕获键并自己触发动作(这是为了触发按钮,所以f5刷新可能更难)我自己看过我正在研究的一个项目.
我怀疑将模态设置为false可能会有所帮助,但我还没有尝试过.
我在ui.dialog.js的第539行找到了这个:
events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
Run Code Online (Sandbox Code Playgroud)
从那里删除keydown和keypress似乎允许正常的浏览器键工作.现在我看起来像这样:
events: $.map('focus,mousedown,mouseup,click'.split(','),
Run Code Online (Sandbox Code Playgroud)
我不知道通过这样做我会删除什么功能.似乎使用的唯一事件是在549行:
$(document).bind($.ui.dialog.overlay.events, function(event) {
var dialogZ = $(event.target).parents('.ui-dialog').css('zIndex') || 0;
return (dialogZ > $.ui.dialog.overlay.maxZ);
});
Run Code Online (Sandbox Code Playgroud)
如果可能的话,在官方版本中修复它会很好.
归档时间: |
|
查看次数: |
4714 次 |
最近记录: |