我正在尝试从javascript更改ASPxClientLabel的类名。怎么做?
我试过了:
此标签位于转发器控件内:
<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>
我收到“未定义”错误。
有什么想法吗?
答案 0 :(得分:2)
试试这个。
function ShortName_Clicked(s, e) {
var selectedText = s.GetText();
$('.shortNameItemLinkClicked')
.removeClass()
.addClass('shortNameItemLink');
$(s).attr('class', 'shortNameItemLinkClicked');
}
答案 1 :(得分:1)
你试过吗
$(s).attr("class","shortNameItemLinkClicked");
答案 2 :(得分:1)
看起来你正在向后添加/删除。请尝试以下
function ShortName_Clicked(s, e) {
$('.shortNameItemLink').removeClass().addClass('shortNameItemLinkClicked');
}
答案 3 :(得分:1)
类名在HTML和jQuery中并不完全匹配。试试这个:
<script type="text/javascript">
function ShortName_Clicked(s, e) {
var selectedText = s.GetText();
$('.shortNameItemLink').removeClass().addClass('shortNameItemLinkClicked');
}
</script>
我还添加了你的例子中缺少的右括号 - 我不确定这只是一个错字。
答案 4 :(得分:1)
$(s).className = "shortNameItemLinkClicked";
应该是
$(s).get(0).className = "shortNameItemLinkClicked"
;
或者如果你知道现有的className
$(s).removeClass("shortNameItemLink").addClass("shortNameItemLinkClicked");
答案 5 :(得分: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文档的
感谢@ShankarSangoli进行方法链接重构。