2012-01-24 3 views
2

Я пытаюсь изменить имя класса ASPxClientLabel из javascript. Как это сделать?Как изменить имя класса с помощью jquery?

Я попытался это:

Эта метка находится внутри управления ретранслятором:

<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 ed ".

Любые идеи?

+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 отсутствует '' ':) – Johan

+0

@Johan - Исправлено это :) – ShankarSangoli

1

Вы пробовали

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

?

+0

Я пробовал сейчас, но по какой-то причине он, похоже, не работает. Когда он работает (я использовал регулярный элемент span), рядом с элементом, который я нажал, появляется стрелка рядом>. Я не получаю ошибку, но у меня также нет стрелки. Наверное, мне нужно изучить его больше. –

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"); 
Смежные вопросы