$(document).ready 不能替换页面底部声明的 js,但我需要在顶部有脚本



我有基于 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 就绪阻止

最新更新