什么会导致 document.ready 函数为空?
What can cause a document.ready function to be null?
我正在使用以下脚本:
script type="text/javascript">
$(document).ready(function () {
$('li:last-child').hover(function () {
$('#test').addClass('transparent'); //mouseover
}, function () {
$('#test').removeClass('transparent'); //mouseout
});
});
</script>
使用以下 HTML 布局:
<body onload="javascript that makes the menu...">
<div id="menu" //this houses the li elements that are created by the javascript></div>
<div id="test">
基本上,我 javascript 创建了一个充满 li 元素的菜单。这些元素中的最后一个应该能够在悬停时使用 id 测试更改 div 的不透明度。相关的css如下:
.transparent{
opacity: 0 !important;
}
但由于某种原因,此代码不起作用。在浏览器的控制台中检查给我一个 TypeError,在上面看到的 javascript 开头的行 $(...) 为空。什么可能导致此错误,我该如何解决?
也许您的 JQuery 库没有被加载或者存在冲突。您是否尝试过使用 jQuery(document) 而不是 $(document)?它有相同的行为吗?如果有,我建议你看看你的图书馆的路径,如果它是正确的。
看来 jQuery 没有及时加载。要解决此问题,请确保在脚本运行之前加载 jQuery。此外,请确保在您描述的错误之前没有发生 javascript 错误。 (您可以通过在大多数浏览器中按 F12 调出 javascript 控制台来检查这一点。)
因此您的代码可能如下所示:
<!-- Load jQuery -->
<script src="//code.jquery.com/jquery-2.1.3.min.js"></script>
<!-- Now do stuff with jQuery -->
<script type="text/javascript">
$(document).ready(function () {
...
});
</script>
注意:或者,可以重新定义某些内容 $
。我认为这不太可能,但您可能在某个地方有一些代码正在执行此操作。
我正在使用以下脚本:
script type="text/javascript">
$(document).ready(function () {
$('li:last-child').hover(function () {
$('#test').addClass('transparent'); //mouseover
}, function () {
$('#test').removeClass('transparent'); //mouseout
});
});
</script>
使用以下 HTML 布局:
<body onload="javascript that makes the menu...">
<div id="menu" //this houses the li elements that are created by the javascript></div>
<div id="test">
基本上,我 javascript 创建了一个充满 li 元素的菜单。这些元素中的最后一个应该能够在悬停时使用 id 测试更改 div 的不透明度。相关的css如下:
.transparent{
opacity: 0 !important;
}
但由于某种原因,此代码不起作用。在浏览器的控制台中检查给我一个 TypeError,在上面看到的 javascript 开头的行 $(...) 为空。什么可能导致此错误,我该如何解决?
也许您的 JQuery 库没有被加载或者存在冲突。您是否尝试过使用 jQuery(document) 而不是 $(document)?它有相同的行为吗?如果有,我建议你看看你的图书馆的路径,如果它是正确的。
看来 jQuery 没有及时加载。要解决此问题,请确保在脚本运行之前加载 jQuery。此外,请确保在您描述的错误之前没有发生 javascript 错误。 (您可以通过在大多数浏览器中按 F12 调出 javascript 控制台来检查这一点。)
因此您的代码可能如下所示:
<!-- Load jQuery -->
<script src="//code.jquery.com/jquery-2.1.3.min.js"></script>
<!-- Now do stuff with jQuery -->
<script type="text/javascript">
$(document).ready(function () {
...
});
</script>
注意:或者,可以重新定义某些内容 $
。我认为这不太可能,但您可能在某个地方有一些代码正在执行此操作。