Поскольку другие ответы не похожи на работу для вас, я собираюсь взять удар по предложению.
Я предполагаю, что вы инициализируете свой JavaScript в том месте, где элемент, добавляющий прослушиватель событий, пока недоступен. Вот решение этой проблемы.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Josue Espinosa</title>
<link href="style.css" rel="stylesheet" type="text/css">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="animate.js"></script>
</head>
<body>
<div id="menu">
</div>
<script type="text/javascript">
$('#menu').hover(function() {
$("#menu").stop().animate({ width: "300px" });
});
</script>
</body>
</html>
В этом примере JavaScript сразу ниже элемента, который вы хотите добавить слушателя, поэтому он гарантированно будет доступен в DOM.
В качестве альтернативы вы можете обернуть JS вокруг события, которое должно быть выполнено после того, как документ будет готов. Вот пример:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Josue Espinosa</title>
<link href="style.css" rel="stylesheet" type="text/css">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="animate.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#menu').hover(function() {
$("#menu").stop().animate({ width: "300px" });
});
});
</script>
</head>
<body>
<div id="menu">
</div>
</body>
</html>
Также важно отметить последовательность элементов JavaScript.
Вы можете указать содержимое, которое у вас есть в файле HTML? – BenR