I want to get alerted whenever I press a key.
I’ve tried:
$('body').live('keyup', function() {
alert('testing');
});
But it doesn’t work, could it be because of the selector?
UPDATE:
Here is my code:
<!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>
It doesn’t alert me when I press something although it works when I replace keyup with mouseover and mouse over TODO write content
Why doesn’t it work?
Try using
$("html")or$("*")instead of$("body"). In order for thekeyUpevent on body to fire, the body node or one of its children must be focused. You can accomplish this in your example by adding a text input and focusing the mouse to that input. What you really want is to capture any key press, so$("html")should work.Edit: I think your example might work, but in any case, to run the logic conditionally you might try this:
Or, I think this will also work: