2014-08-28 50 views
0

我想在其中一个按钮中的点击事件之后使模态窗口transprent(不透明度:0.5)。 我尝试使用:更改已显示的检票口的样式ModalWindow

window.add(AttributeAppender.append("style","color:red; font-weight:bold")); 
or 
window.setCssClassName("custom-modal"); 

但是这些解决方案,用户可以应用所需的样式。

任何帮助将不胜感激!

感谢

回答

0

为什么你的解决方案不工作的原因,是检票口不使用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>