2012-01-24 31 views
2

我正在嘗試從javascript更改ASPxClientLabel的類名。這個怎麼做?如何使用jquery更改類名?

我嘗試這樣做:

這個標籤是Repeater控件的內部:

<dx:ASPxLabel ID="labelShortName" runat="server" CssClass="shortNameItemLink" 
ClientSideEvents-Click="function(s, e){ ShortName_Clicked(s, e); }" 
Text='<%#DataBinder.Eval(Container.DataItem, "ShortName")%>'> 
</dx:ASPxLabel> 

這個標籤開始作爲 「點擊」

<dx:ASPxLabel ID="labelShowAll" runat="server" 
ClientSideEvents-Click="function(s, e){ ShortName_Clicked(s, e); }" Text="Show All" 
CssClass="shortNameItemLinkClicked"></dx:ASPxLabel> 

[JS]

<script type="text/javascript"> 
    function ShortName_Clicked(s, e) { 
     var selectedText = s.GetText(); 
     var items = $('.shortNameItemLinkClicked'); 
     items.removeClass(); 
     items.addClass('shortNameItemLink'); 
     $(s).className = "shortNameItemLinkClicked"; 
} 
</script> 

我得到「undefin編輯「錯誤。

任何想法?

+0

你不能重命名類...要麼添加或刪除現有的一個,然後添加所需的一個 – Vivek

+0

從您的代碼我發現「ShortName_Clicked」功能缺少關閉}。你忘了粘貼在這裏?如果你錯過它,這將是一個問題。 – sathishkumar

+0

@sathishkumar - 謝謝。我更新了。 –

回答

0

不好意思把我自己的答案,但沒有其他人似乎工作。

我固定它像這樣:

<script type="text/javascript"> 
    function ShortName_Clicked(s, e) { 
     var selectedText = s.GetText(); 
     $('.shortNameItemLinkClicked') 
     .removeClass() 
     .addClass('shortNameItemLink'); 

     $('#' + s.name) 
     .removeClass("shortNameItemLink") 
     .addClass("shortNameItemLinkClicked"); 
    } 
</script> 

從DevExpress的文檔:ASPxClientLabel

感謝@ShankarSangoli爲方法鏈接refactorage。

2

試試這個。

function ShortName_Clicked(s, e) { 
     var selectedText = s.GetText(); 
     $('.shortNameItemLinkClicked') 
     .removeClass() 
     .addClass('shortNameItemLink'); 
     $(s).attr('class', 'shortNameItemLinkClicked'); 
} 
+0

Youre missing'':) :) – Johan

+0

@Johan - 更正了它:) – ShankarSangoli

1

你試過

$(s).attr("class","shortNameItemLinkClicked"); 

+0

我現在試過,但由於某種原因,它似乎並沒有工作。當它工作時(我使用了一個常規的跨度元素),點擊的項目旁邊會出現一個>箭頭。我沒有得到錯誤,但我也沒有得到一個箭頭。我想我需要更多地研究它。 –

1

它看起來像你正在做你的向後添加/刪除。請嘗試以下方法

function ShortName_Clicked(s, e) { 
    $('.shortNameItemLink').removeClass().addClass('shortNameItemLinkClicked'); 
} 
1

類名在您的HTML和jQuery中不太匹配。試試這個:

<script type="text/javascript"> 
    function ShortName_Clicked(s, e) { 
     var selectedText = s.GetText(); 

     $('.shortNameItemLink').removeClass().addClass('shortNameItemLinkClicked'); 
    } 
</script> 

我還添加結束花,因爲它是從你的例子裏缺了 - 我不知道,如果這只是一個錯字。

+0

對不起,我添加了缺少標記。 –

1
$(s).className = "shortNameItemLinkClicked"; 

應該是 $(s).get(0).className = "shortNameItemLinkClicked";

,或者如果你知道現有的className

$(s).removeClass("shortNameItemLink").addClass("shortNameItemLinkClicked");