ASP.NET Master Page和jQuery

时间:2010-12-03 15:29:09

标签: jquery

我有一个具有

的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引用,以便所有页面可以共享一个公共初始化而其他页面不共享?

2 个答案:

答案 0 :(得分:2)

您可以将其他document.ready事件处理程序添加到需要其他页面的页面中,例如,这可以位于需要图库设置的页面中:

<script type="text/javascript">
  $(showGallery);
</script>

...将在DOM准备好后执行您的showGallery()函数。此外,只要它出现在您之前的代码之后,它肯定会在它之后运行。 ready处理程序将按顺序执行(除非通过.bind("ready"...)调用,这是不同的......后面会发生但仍然按顺序执行。)

答案 1 :(得分:1)

您可以定义要在DOMReady中执行的多个函数。我只需在gallery.js中添加以下内容(或可能定义showGallery的地方)

$(function() {
    showGallery();
});