我有一个具有
的site.js文件$(document).ready(function () {
initMenu();
});
和相应的MasterPage:
<head>
<script src="@Url.Content("~/Scripts/jquery-1.4.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/Site.js")" type="text/javascript"></script>
</head>
在上面的示例中,initMenu()
需要在所有页面上运行,因此site.js自然会放在母版页中。
但是,有些页面需要一组不同的初始化代码,因此不会让所有页面都运行以下初始化。
$(document).ready(function () {
initMenu();
showGallery(); <-- Problem?
});
我应该如何构建JS引用,以便所有页面可以共享一个公共初始化而其他页面不共享?
答案 0 :(得分:2)
您可以将其他document.ready
事件处理程序添加到需要其他页面的页面中,例如,这可以位于需要图库设置的页面中:
<script type="text/javascript">
$(showGallery);
</script>
...将在DOM准备好后执行您的showGallery()
函数。此外,只要它出现在您之前的代码之后,它肯定会在它之后运行。 ready
处理程序将按顺序执行(除非通过.bind("ready"...)
调用,这是不同的......后面会发生但仍然按顺序执行。)
答案 1 :(得分:1)
您可以定义要在DOMReady中执行的多个函数。我只需在gallery.js
中添加以下内容(或可能定义showGallery
的地方)
$(function() {
showGallery();
});