2010-12-03 76 views
0

我有具有ASP.NET母版頁和jQuery

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

和相應的母版單site.js文件:

<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

您可以添加其他document.ready事件處理程序需要額外的那些網頁,例如這可以在需要的庫頁設置:

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

...在DOM準備就緒時執行您的showGallery()函數。另外,只要它出現在你之前的代碼之後,它肯定會在它之後運行。 ready處理程序將按順序執行(除非通過.bind("ready"...)調用,這是不同的......那些發生後,但仍然是有序的)。

+0

+1爲了精心製作,併爲簡潔的代碼。這顯然是我寫的功能相當於(減去一層無意義的封裝),但我從來沒有想過要這樣寫。整潔:) – 2010-12-03 16:58:54

1

您可以定義幾個要在DOMReady上執行的函數。我只想補充以下的gallery.js(或其它地方showGallery可能被定義)

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