This question already has answers here:
Why does jQuery or a DOM method such as getElementById not find the element?
                                
                                    (8个答案)
                                
                        
                                2年前关闭。
            
                    
我是jQuery和javascript的新手。我在这里尝试一些事情,所以让我解释一下我所拥有的:

-我有几个单独的.js文件正在运行代码。在index.html文件中的代码触发之前,我无法让它们加载。它总是加载jQuery文件(设置window属性),然后加载index.html,然后将所有其他.js文件与jQuery主文件一起列出。因此,我正在尝试解决此问题。

我已经将我的JavaScript分离为单独的文件:
-jQuery.js(mini)//从任何本地或主要的ajax源都可以正常工作
-mainpage.js //用于主页设置的javascript代码。它在那里需要的元素,目前没有。
-mainmenu.js //这将加载mainmenu.html,其中包含mainmenu列表。
-index.html //我要在其上运行的唯一代码是将home的".active"类声明为home。我希望在此文件中使用它,因此我可以在所有文件中使用相同的通用mainmenu.js和mainmenu.html。
这些都在index.html的头中声明。

我的问题是它加载jQuery.js加载,然后立即触发index.html的javascript。我不知道如何声明将#home按钮设置为".active"的功能,我可以将其声明为文档级别吗?我知道我不应该让它成为全球性的……但是我不知道该怎么做?
我目前正在这样做:

defineactive(){
    $(mmlist).find("#home").addClass("active");

}


但是,尚未定义mmlist。该声明在mainmenu.js中声明,该文件在index.html之后加载

所以我想我的问题是我可以声明一个可以在jQuery.js之外调用的函数吗?

如果没有,除了使用外部源/应用程序外,如何确保按顺序加载javascript文件?我计划以后以更复杂的方式使用这个想法,所以我需要这个工作。

最佳答案

尝试将代码包装为:

$(document).ready(function(){
// ... Your code ...
});


因此它将在页面加载时运行。

10-05 20:39
查看更多