2010-11-02 66 views
2

我正在試驗jQuery UI選項卡控件,並且有三個選項卡,每個選項卡通過AJAX加載不同的頁面。加載的頁面是完整的html頁面,帶有自己的Javascript和CSS。使用通過AJAX接收的CSS/Javascript

html內嵌的腳本沒問題,標籤上的style-attribute也是CSS,但加載頁面頭部的Javascript和CSS根本沒有使用。

如何在加載頁面的頭部使用Javascript和CSS?還是必須在包含選項卡控件的頁面中包含所有CSS和Javascript?

回答

1

AJAX負載將過濾掉任何不在body元素中的東西。你可以把CSS/Javascript標籤放在正文中,它們會被添加到你的頁面中,但如果可能的話,我會盡量避免。如果你不小心,你最終會多次包含事物。

我建議在包含選項卡的頁面上放置像jQuery本身,插件等常見的東西,並只在通過AJAX加載的位上放置選項卡特定的腳本。您需要小心地管理ID - 它們必須是全球唯一的,在選項卡中不是唯一的。堅持使用類可能是一種更好的方式來處理這個問題,或者使用標籤名稱來標記您的ID。對於CSS,我會嘗試使CSS成爲適用於整個頁面的標籤,並將其加載到頁面中。

YMMV。你的Ajax調用後

<link rel="stylesheet" id="yourid" type="text/css" /> 

這:

+0

似乎很麻煩,我想我只是繼續工作,沒有選項卡控制,只是使用頁面之間的正常鏈接。 – 2010-11-02 17:47:50

+0

@Joachim - 在實踐中,我不覺得它是。開始這種方式可能更容易將某些東西改裝成標籤,但說實話,我沒有太多麻煩。當然,由於關注點分離,ASP.NET MVC可能比其他框架更容易。 – tvanfosson 2010-11-02 17:51:23

0

你可以在你的頭腦中加入這一行

document.getElementById('yourid').href='css/'+yourvariable+'.css';} 

你可以做腳本相同的(變化rel和類型)。