2017-10-17 51 views
1

我是新来的jQuery和JavaScript。我在这里尝试了一些东西,所以让我解释我有什么:jQuery如何制作一个全球性的功能?或文档级别?

- 我有几个独立的.js文件运行代码。我无法让它们在index.html文件中的代码触发之前加载。它总是加载jQuery文件(它设置窗口属性),然后加载index.html,然后加载所有其他.js文件,我列出了jQuery主文件。所以我试图解决这个问题。

我已经分隔我的javascript到单独的文件:
- jQuery.js(迷你)//从任何本地或主AJAX源这部作品
- mainpage.js // JavaScript代码的主要页面设置。它在那里作为需要的元素,目前什么都没有。
- mainmenu.js //这个加载mainmenu.html包含mainmenu列表。
- index.html //我想运行的唯一代码是将".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文件加载顺序?我打算以后用更复杂的方式使用这个想法,所以我需要这个工作。

+1

第一个问题,你的js文件'jquery'是否依赖? – Hackerman

+0

是的,他们是。因此我需要jQuery加载FIRST,并且它确实需要。但是我希望我的mainpage.js,mainmenu.js和其他人加载NEXT,并在我的index.html(或其他网页)末尾调用JavaScript来激发LAST。 – Jexadox

回答

0

尝试来包装你的代码为:

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

所以它会通过的时候页面就会被加载运行。

+0

我总是这样做。不工作。根据另一篇文章,这等待html加载,但不是所有的资源。尝试'$(文档).load(函数(){'本来应该解决这个问题......但我也尝试过,无济于事。 – Jexadox