为什么你的解决方案不工作的原因,是检票口不使用ModalWindow的<div>
显示在屏幕的实际模式,但创建类检票模式的新<div>
代替。
因此,您只需找到<div class='.wicket-modal'>
并添加新的不透明度,而不是改变ModalWindow的<div>
风格。
下面是一个简单的例子:
final ModalWindow modal = new ModalWindow("modal");
modal.setTitle("Trivial Modal");
AjaxLink<Void> modalLink = new AjaxLink<Void>("modalLink") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
target.appendJavaScript("var originalStyle = $('.wicket-modal').attr('style');"
+ "$('.wicket-modal').attr('style', originalStyle + 'opacity: 0.5;');");
}
};
Fragment modalFragment = new Fragment(modal.getContentId(), "modalContent", this);
modalFragment.add(modalLink);
modal.setContent(modalFragment);
add(modal);
add(new AjaxLink<Void>("openModal") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
modal.show(target);
}
});
和HTML文件:
<div wicket:id="modal"></div>
<wicket:fragment wicket:id="modalContent">
<div wicket:id="modalLink">Change opacity</div>
</wicket:fragment>
<div wicket:id="openModal">Press me</div>