2009-05-19 70 views
0

我試圖使用jQuery UI選項卡非常像ASP.Net中的主頁。我有特定的JavaScript需要運行一次每個標籤加載。我試圖在每個頁面中都有一個$(document).ready函數,但是我讀過這是不好的做法,似乎只能在IE中工作。

我知道有一個加載事件,但我需要事件是每個選項卡的具體情況,我不知道如何完成此操作,或者甚至可能。我可能不得不恢復使用和實際的MasterPage和每個頁面加載回發。

回答

1

你從哪裏讀到這是不好的做法?

Afaik,有多個$(document).ready()的將簡單地讓他們「合併」,以便其中任何一個代碼將運行。我不記得jQuery 1.3這是否是新的,所以你可能想檢查一下。

1

有多個$().ready是不錯的做法,除非你不必要地把它分成多個。在標籤被加載的情況下,恕我直言,把一個$(document).ready裝入內容可能是最好的方式去做一些標籤特定的行爲發生。我使用它來重新綁定新加載的元素,因爲它們被注入到新加載的選項卡中。

+0

如果您正在綁定.click事件等,請查看jQuery 1.3中的(新).live()事件。他們會爲你做的工作! – 2009-05-19 18:18:27

2

$(document).ready()是不錯的做法,它適用於jQuery工作的每個瀏覽器。如果您的事件僅在IE中觸發,您在自己的代碼中存在一處錯誤。

我在我的應用程序中有幾十個準備好的功能,沒有問題。

+0

感謝大家。我做了更多的研究。我在我的子頁面中包含了對jQuery的引用以進行測試,並且出於某種原因,這導致了我在頁面中編寫的其他javascript問題。 「一般來說,你不應該把加載的元素作爲一個新頁面,並調用$(document).ready。這不是一個新的頁面,而是一些新的元素添加到DOM。所有的ajax方法都有一個回調方法當數據成功加載時調用。「 這就是我讀過的告訴我這可能是錯誤的方式。 我現在工作。再次感謝! – Kyle 2009-05-19 18:03:16