1

我有基于 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>

它位于页面底部并且可以工作。我怎么能把函数放在顶部,甚至从一个单独的文件中包含它?

4

2 回答 2

1

我遇到了这个问题,我在 jquery 包含链接之后在头部使用了这个:

$(document).ready(myfunction());

由于未加载对象,此操作失败。我应该将我的调用包装在一个函数中:

$(document).ready(function () {
    myfunction();
});

只有在正确加载文档后才能按预期工作。

于 2013-08-13T10:35:57.947 回答
0

建议将脚本放在页面末尾的原因是为了在您尝试访问 HTML 元素之前将它们加载到页面上。

无论您将代码放在哪里,最好将代码包装在 DOM 就绪事件中,以确保在您尝试访问页面中的元素之前正确加载完整的 HTML 文档。

也许在你的情况下

 <script type="text/javascript">
        mouseovertabsmenu.init("mytabsmenu", "mysubmenuarea", true);
    </script>

似乎在未封装在 DOM 就绪时可以工作是该函数不可访问,因为它的范围被 DOM 就绪阻止

于 2012-09-27T05:38:06.590 回答