2012-01-24 22 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");