我想在我按下某个键时收到提醒。
我试过:
$('body').live('keyup', function() {
alert('testing');
});
但是不行,会不会是选择器的问题?
更新:
这是我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>TODO supply a title</title>
<script type="text/javascript" src="../system/media/js/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('body').live('keyup', function() {
alert('testing');
});
});
</script>
</head>
<body>
<p>
TODO write content
</p>
</body>
</html>
当我按下某些东西时它不会提醒我,尽管当我将 keyup
替换为 mouseover
并将鼠标悬停在 TODO write content
为什么它不起作用?
最佳答案
尝试使用 $("html")
或 $("*")
而不是 $("body")
。为了触发 body 上的 keyUp
事件,必须聚焦 body 节点或其子节点之一。您可以在您的示例中通过添加文本输入并将鼠标聚焦到该输入来完成此操作。您真正想要的是捕获任何按键,因此 $("html")
应该可以工作。
编辑:我认为您的示例可能有效,但无论如何,要有条件地运行逻辑,您可以尝试这样做:
if ($(document.body).is(".focusOnKeypress")) {
$("html").live(...);
}
或者,我认为这也可行:
$("body:not(.noFocusOnKeypress)").parent("html").live(...);
关于javascript - body 上的按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226346/