jquery - 如何在 html 元素上重写 onkeydown?

标签 jquery html

我继承了一个实现在弹出窗口中禁用 F5 的应用程序。

<body onkeydown="disableF5();">

但是,如果用户在窗口正文下方单击并按 F5,页面仍会刷新。

我把函数调用移到了

<html onkeydown="disableF5();">

现在 F5 被禁用,一切都按预期工作。

然而,这不是拥有代码的最佳位置,如果我可以在我的 <script> 中执行类似下面的操作,我会更喜欢它部分,这样我就可以添加评论并可能将其移动到外部文件。

$("html").attr("onkeydown", "disableF5();");

这段 jQuery 代码没有按预期工作,所以我现在卡住了。

有没有办法设置 <html> 的属性?元素?

编辑:我想我会把我的 disableF5() 函数放在这里。

function disableF5() {  
   if (window.event && window.event.keyCode == 116) { 
        window.event.cancelBubble = true;
        window.event.returnValue = false;
        window.event.keyCode = 0;
        window.status = "F5 is disabled on all popups";
        return false;
   }   
}

最佳答案

$('html').bind('keydown', function(){ disableF5(); });

参见 documentation for $.bind()

编辑 – 适度冗长的解释:

HTML onstuff 属性在加载 DOM 时进行评估。事后添加它们没有任何效果。因此,必须使用适当的 JS 事件绑定(bind)。

关于jquery - 如何在 html 元素上重写 onkeydown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896660/

相关文章:

javascript - 如何知道图像是否无法在 javascript 中加载?

jquery - Bootstrap 和 ASP.NET 菜单

javascript - 灯箱未加载动态选择器

css - 如何将元素发送到后台

jquery - 使用 jquery 禁用具有名称属性的文本区域字段

jquery - 隐藏网页浏览器滚动条

javascript - jquery:将[object Object]附加到字符串

php - 在提交表单时加载跟踪脚本

jquery - 悬停时切换 CSS 颜色

html - 多级悬停 CSS