我有很多像这样的链接:
<li wicket:id="LIlink"><a href="#" wicket:id="link">Link name</a></li>
在wicket中,<li>
是 WebMarkupContainer ,<a>
是链接
当我点击链接时,我想将li的课程更改为活动状态,并且我使用我制作的课程进行此操作,如下例所示:
Link link= new Link("link")
{
@Override
public void onClick() {
WMK.add(CssClassManagement.addAttribute("active"));
}
};
考虑到WMK是包含链接的WebMarkupContainer。
直到这里,一切正常,问题是我无法弄清楚当点击另一个链接时如何从<li>
删除活动课程?
答案 0 :(得分:1)
如果您的链接指向不同的页面,您只需检查当前页面是否是指定链接所指向的页面,然后决定添加或删除活动属性。
答案 1 :(得分:1)
问题出在CssClassManagement.addAttribute("active")
。
这为组件提供了一个永久的行为,它可以提供活跃的&#34;每个组件渲染的CSS类。如果行为是临时的(请参阅Behavior#isTemporary()
),那么它将只使用一次并立即从组件中删除。因此,页面的下一次重新绘制不会将链接标记为活动。
另一种方法是在发生click事件时删除CSS类:
$(function() {
$(document).on('click', 'a', function() {$('li.active').removeClass('active');});
});
这将在用户单击锚点时删除CSS类。页面的重新绘制将选择新的链接作为活动链接。