有没有办法动态改变一个按钮的CSS类?
我正在研究基于Wicket的Web应用程序。在应用程序中有不是每个用户都有权使用的按钮。这些按钮实际上是简单的链接,例如有没有办法动态改变一个按钮的CSS类?
<a wicket:id="publishButton" title="Publish" class="rightPanel_publish"><wicket:message key="publish"/></a>
带有设置其外观的CSS类(来自外部CSS文件)的例如
a.rightPanel_publish {
display: block;
width: 90px;
height: 27px;
background: url(../imgs/right_panel_icon03.gif) left top repeat-y;
text-decoration: none;
color: black;
padding: 12px 0px 0px 35px;
}
当用户没有被授权使用该按钮,链接被禁用(在Java中)和CSS,出于某种原因,已不再使用。
我的问题是这样的:有没有一种方法来确定链接在运行时被禁用并更改CSS类?我宁愿避免使用JavaScript(尽可能保持整个项目无JS)......并且更喜欢可以在所有浏览器中使用的东西。
多谢,
尤瓦= 8-)
不幸的是我不知道的方式来改变一个按钮的页面,而JS。在页面载入唯一与页面交互的方式之后,CSS,Java和其他所有内容都在页面加载时运行。
但这里要说的是在任何浏览器(IE 6 +,Safari浏览器,歌剧,FF等)工作的JS,
if(document.getElementById('foo'))
{
document.getElementById('foo').className='bar';
}
有没有办法做到这一点没有某种形式的脚本。该“d”中的“DHTML”代表“的Javascript”:P
编辑:其实,既然你说东西被禁用链接/按钮时,事情就可以/也应该附加一个“禁用”类(使CSS注意到的唯一x浏览器方式)添加到同一元素。运行时切换不会进入它 - 如果事情正在改变状态,它需要彻底地完成。
我使用*.setVisible(Boolean boolean)
它可用于在检票WebMarkupContainer模型。 setVisible()可以根据用户角色在类中的其他地方分配。因此您可能必须寻找它...
检票链接取代<a>标记<范围>禁用时。
记住这一点,应用CSS时,如:
.rightPanel_publish_button {
display: block;
width: 90px;
height: 27px;
background: url(../imgs/right_panel_icon03.gif) left top repeat-y;
text-decoration: none;
color: black;
padding: 12px 0px 0px 35px;
}
你也可以用AttributeModifier改变按钮的外观(即CSS类),基于用户的认证状态:
myButton.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID= 1L;
@Override
public String getObject() {
if (!isAuthorized()) {
return "rightPanel_unauthorized";
}
return "rightPanel_publishbutton";
}
}));
在您的CSS中,您可以根据需要定义“.rightPanel_unauthorized”样式。