将wicket标签显示为可见后如何执行JavaScript函数?

时间:2016-04-23 23:31:13

标签: javascript java wicket

我有一个JavaScript函数,它会将<span>内的文本拆分,并为每个部分生成3 <span>

第一次加载labelA visible和labelB的页面不可见。 用户将执行操作以告知他想要查看labelB并隐藏标签A.

用户单击提交按钮以显示labelB后,页面将再次呈现,JS将立即再次为labelB拆分文本。

直到这里都很好,但是当我导航到另一个页面然后我尝试回来时(使用wicket按钮而不是浏览器),因为仍然选择“bundle”,labelA必须不可见。

当页面加载几秒钟时,标签A出现,JavaScript完成工作,渲染完成后,LabelA现在被隐藏,LabelB可见,但文本不是3部分。

在JS文件中我使用window.onload以便在dom渲染后执行该函数但它不起作用。渲染完成后,wicket隐藏了labelA并显示了labelB,但是在labelB出现之前执行了JS函数,那么labelB文本只在一个<span>中。

标签可见后有没有办法执行JavaScript函数?

在执行Javascript之前

<span wicket:id="labelA">some text here</span>

在这种情况下,labelB将被隐藏

执行Javascript后

<span class="style1">some</span>
<span class="style2>text</span>
<span class="style3>here</span
//text value comes from DB
Label labelA = new Label("labelA", text){
  @Override
  protected void renderHead(final IHeaderResponse response)
  {adding javascript into header}
};
if(!text.equals("simple")
{
  labelA.setVisible(false);
}
add(labelA);
Label labelB = new Label("labelB", text){
  @Override
  protected void renderHead(final IHeaderResponse response)
  {adding javascript reference}
};
if(!text.equals("bundle")
{
  labelB.setVisible(false);
}
add(labelB);

0 个答案:

没有答案