如何在wicket中单击另一个链接时禁用所选链接?

时间:2015-02-19 16:55:08

标签: java wicket

我有很多像这样的链接:

 <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>删除活动课程?

2 个答案:

答案 0 :(得分:1)

如果您的链接指向不同的页面,您只需检查当前页面是否是指定链接所指向的页面,然后决定添加或删除活动属性。

答案 1 :(得分:1)

问题出在CssClassManagement.addAttribute("active")。 这为组件提供了一个永久的行为,它可以提供活跃的&#34;每个组件渲染的CSS类。如果行为是临时的(请参阅Behavior#isTemporary()),那么它将只使用一次并立即从组件中删除。因此,页面的下一次重新绘制不会将链接标记为活动。

另一种方法是在发生click事件时删除CSS类:

$(function() {
  $(document).on('click', 'a', function() {$('li.active').removeClass('active');});
});

这将在用户单击锚点时删除CSS类。页面的重新绘制将选择新的链接作为活动链接。