我有一个 DIV 并想显示一个 listItem-Panel,如果我单击 DIV,listItem-Panel 应该被 listItemDetail-Panel 替换。由于这个原因,DIV 包含一个带有 Wicket:ID=curPanel 的 Child-DIV。
div.add(new AjaxEventBehavior("onclick") {
@Override
protected IAjaxCallDecorator getAjaxCallDecorator() {
return new AjaxCallDecorator() {
@Override
public CharSequence decorateScript(final CharSequence script) {
return String.format("$('#%s').fadeOut(1000, function(){ %s });", div.getMarkupId(), script);
}
};
}
@Override
protected void onEvent(final AjaxRequestTarget target) {
final Panel curPanel = (Panel) div.get("curPanel");
if (curPanel.getClass().equals(listItemDetailPanel.class)) {
curPanel.replaceWith(listItemPanel);
} else {
curPanel.replaceWith(listItemDetailPanel);
}
target.addComponent(div);
target.appendJavascript("new Effect.FadIn($('" + div.getMarkupId() + "'))");
}
});
我使用 AjaxCallDecorator 淡出 DIV(其中包含 listItemPanel 或 listItemDetailPanel)。之后,面板将被另一个面板替换,然后 DIV 应通过淡入显示。
但这就是问题所在!我应该怎么做,在 Ajax-Replacement 之后淡入 DIV?
您可以看到 target.appendJavascript() 调用,但这不起作用!
我需要 Wicket/WiQuery 的解决方案。我知道 jQuery 的解决方案,我想采用它们。
谢谢克里斯托夫