2011-10-13 50 views
5

我使用jQuery UI的舌,以允許用戶創建自己的選項卡,然後ofcourse切換選項卡,因爲他們認爲合適的。小部件中的內容是小部件,它們本身就像迷你程序一樣。用戶然後可以在任何給定選項卡上選擇他們想要的小部件。jQuery的用戶界面的選項卡內容的抗干擾

這工作得很好,只要任何給定的窗口小部件在1個選項卡中只設置,然而,事情開始去錯了,當任何給定的widget被加到2個標籤以上。當部件生成時,他們使用數據庫中的ID。例如 。如果一個給定的小部件被添加到2個或更多的標籤,他們最終會得到2個id與id相同的div,例如widget_1,這會導致您可以想象的問題。

所以我的問題是,什麼是解決這種問題的最好方法?

我想我前面,他們希望能夠使用相同的部件超過1個標籤就知道了。我得到這個幾乎將不得不是一個完全重寫的感覺...

回答

2

並在「分區稱爲DIV1」有「DIV1」爲ID

你的問題聽起來就像是一個ID,並且那所有的問題:the id has to be unique

來解決這個問題,帶班工作 - 它們可以多次使用,你應該能夠做同樣的事情(但是,如果沒有看到一些代碼,這有點難以說明)。

編輯:改變了我的拳頭鏈接顯示w3c推薦。我鏈接this article之前

+0

只是用這篇文章*的最後一行。如果你希望你的網頁,以驗證爲XHTML或HTML,那麼你應該在你的網頁的唯一身份標識。* - 一切正常,甚至沒有正在驗證!我還是不明白爲什麼人們依靠這麼多的建議文件...建議退出到循經,但這裏有這樣的情況,有我們不能簡單地遵循建議,讓我保證所有仍然偉大工程。 **在任何瀏覽器中!** – balexandre

+0

我同意你的看法,但在這種情況下,我們「不能簡單地遵循建議」 - 這很容易,如果你可以選擇遵循建議或它打破,爲什麼有人會選擇打破它... – oezi

-2

這不是一個建議的做法,在同一頁中有相同的id,但你不應該有任何問題,所有你需要做的JavaScript調用是追加它自己的標籤,例如:

$(".tab-1 #div1")...,而不是隻$("#div1")...

不過,我總是避免同id和「告訴」你的發電機使用div1-random-number始終使用類使用當前選項卡,以獲得小部件看到在上面的代碼中

Live example on JsBin

+1

我不會建議使用相同ID的兩倍,即使瀏覽器接受。它仍然是明顯錯誤的,並違反了定義:http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 – oezi

+0

** W3只是一個推薦thingy **,不要以爲如果你不遵循建議,那麼這個洞世界將會掛起! – balexandre

+1

**推薦是有原因的**,不要再以爲每個人都使用現代的金光閃閃瀏覽器 - 仍然有人使用IE6,Netscape,特殊的Screenreader-Browsers以及許多其他瘋狂/舊東西,多個相同ID的問題。 (使用id或class也是同樣的工作,那麼爲什麼有人不推薦這些建議呢?最好什麼都不會發生,但是你可能會得到一大堆問題) – oezi

相關問題