2011-04-07 44 views
0

在項目中,在動態生成的頁面上,多次加載相同的JavaScript函數。這會產生衝突,而且這些功能都不起作用。更準確地說,幾個表正在被加載,並且這些表的某些行是可擴展的。當幾個表格被加載並且所有這些表格使用相同的模板時,JavaScript代碼在同一頁面中被重複多次,這使得這些功能無法工作。有沒有辦法來解決這個問題的所有表,或者至少只有第一個?與重複的JavaScript代碼衝突

在此先感謝。

+5

你有密碼嗎?或者我們必須猜測你做了什麼? – Neal 2011-04-07 20:09:52

+0

如果你在HTML元素中定義函數,那麼你做錯了。在頁面頂部定義一次,並在需要時給它們打電話。不要在每次需要使用它們時定義它們。 – CanSpice 2011-04-07 20:22:03

+0

代碼真的很重要嗎?衝突是相同的代碼被重複數次。 – cycero 2011-04-07 20:22:04

回答

1

你可以在多種方式解決這個問題:

使用匿名的JavaScript函數採取默認的命名空間之外這些變量。

重新編碼您的JavaScript,以便它可以正常工作,並且只能加載一次,但仍然適用於應該適用的每個表。考慮使用類和寫一個jQuery插件。 < - 做這個。一旦你得到它的工作,你可以將它移動到一個外部文件,以便用戶的瀏覽器可以緩存它,並加快頁面加載時間。

爲您的JavaScript函數附加一個唯一標識符。 - 不要做這個,這只是一個頭痛。它使事情難以緩存,並要求您在每個頁面上動態生成JavaScript!

0

我會改變javascript函數的名稱,以便它們包含行的唯一標識符。這樣他們都保持獨特,行仍然可以打電話給他們。