2013-11-03 63 views
0

我有一些代碼,看起來像這樣:removeClass然後addClass與jQueryUI的

$('aside a').removeClass('selected'); 
itemToSelect.addClass('selected'); 

的目的是去除選定的造型從一個鏈接列表,然後將它應用到一個用於鏈接到當前頁面。

我懷疑它適用於jQuery,但jQueryUI似乎覆蓋這些方法,我不能爲我的生活找出如何彎曲它們,使它們工作。我已經嘗試將addClass放入removeClass的完整函數中,但其行爲並非我想要的(在未被調用或被多次調用之間擺動)。

有沒有一種方法,我可以只是調用標準的jQuery方法(我需要其他地方的jQueryUI)。

編輯:如果我將removeClass上的持續時間設置爲0,並將addClass置於setTimeout中,那麼我可以將超時設置爲0,並且行爲起作用。雖然感覺不像最乾淨的方法,但行爲是可以接受的。

+0

參觀[jQuery UI的網站(http://jqueryui.com/)明確規定,「jQuery UI的是策展組用戶界面交互效果,窗口小部件和主題建立在jQuery的頂部JavaScript庫「。所以答案可能是'不'。 –

+0

你確定'itemToSelect'在第一行被執行後有效嗎? – frnhr

+0

@frnhr是的,如果我將addClass包裝在setTimeout(...,500)中,它就可以工作。顯然,這有點垃圾。 – rich

回答

0

怎麼樣..去除你的div中的所有元素的所有類,然後添加SELECTED到已被踢的鏈接。

$('div#menu a').click(function() { 
     $("#div a").removeClass('selected'); 
     $(this).addClass('selected'); 
}) 
+0

這是如何解決'removeClass()'/'addClass()'作爲jQuery庫的方法而不是jQuery UI的問題? (更不用說,創建另一個問題是不可避免的* next *問題,因爲'.click()'同樣也是jQuery的一部分,而不是jQuery UI。) –

+0

它沒有。這是同一件事。 – rich

+0

@豐富:嗯,是的:就是這一點。 –