我有基于 JQuery 的选项卡导航,只有在它放在菜单的 html 之后时才有效。如果它也放在末尾,它可以工作,但是当我将相同的脚本放在 $(document).ready 顶部时会中断。
我认为这个(放在页面顶部):
<script type="text/javascript">
$(document).ready(function(){
mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
});
</script>
将与此相同:
<script type="text/javascript">
mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
</script>
</html>
它被放置在页面底部并工作。我如何将函数放在顶部,甚至从单独的文件中包含它?
我遇到了这个问题,我在jquery包含链接之后的头部使用了它:
$(document).ready(myfunction());
由于未加载对象,此操作失败。我应该将我的调用包装在一个函数中:
$(document).ready(function () {
myfunction();
});
只有在正确加载文档后,此操作才能按预期工作。
脚本放在页面末尾的原因,是为了在尝试访问它们之前将HTML元素加载到页面上。
无论您将代码放在何处,最好包装在DOM ready事件中,以确保在尝试访问页面中的元素之前正确加载完整的HTML文档。
也许在你的情况下
<script type="text/javascript">
mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
</script>
当未包含在 DOM 就绪中时似乎可以工作,该功能无法访问,因为它的范围被 DOM 就绪阻止