2009-02-07 22 views
1

我的網頁與不同的網站應該只加載一個.js文件進行緩存優化。 加載文件時出現問題。它將每個頁面上的監聽器應用到表單元素(例如),所以最後一頁的表單就像它應該那樣工作,其他的不會導致他們的操作被覆蓋。jQuery不同的頁面與一個.js文件不同的動作

所以我的問題,我怎麼能說它應該只適用於這個網站importent聽衆的腳本。

我正在使用jQuery框架。

回答

0

用一個簡單的ID(比如「page1」和「page2」)將每個頁面包裝在不同的div中。然後在您的JavaScript抓住元素與ID:

$('#page1 div').show(); 
$('#page2 div').hide(); 

這將顯示頁面1上的所有div並隱藏它們全部在page2上。

+0

不是很性感? – Thomaschaaf 2009-02-07 12:36:11

4

您對瀏覽器進行優化的嘗試與您的不同逐頁行爲有衝突。我不會把它全部塞入到一個js文件中。考慮可維護性,模塊化。

您可以將常見/共享代碼放入一個js文件,並將其包含在所有頁面中。瀏覽器仍然會緩存所有內容,只需要檢查是否自上次獲取它之後修改了它,就必須提出額外的請求。但至少你的理智仍然會受到控制。

但無論如何,這裏的答案:

第1頁:

<body id="page1">...</body> 

第2頁:

<body id="page2">...</body> 

等,現在在monster.js當你連接你的行爲第1頁:

$(document).ready(function() { 
    if(this.body.id != 'page1') 
     return; 

    // proceed as before 
}) 

同爲部連接行爲,第2個元素:

$(document).ready(function() { 
    if(this.body.id != 'page2') 
     return; 

    // proceed as before 
}) 

相關問題