java modal_java – 关闭按键上的ModalWindow

“正确”的方法是调用服务器,然后用响应关闭它.您可以使用ajax行为执行此操作:

ModalTestPage.java

public class ModalTestPage extends WebPage {

public ModalTestPage(PageParameters parameters) {

super(parameters);

final ModalWindow modal = new ModalWindow("modal");

modal.setContent(new Fragment(modal.getContentId(), "window", this));

add(modal);

add(new AjaxLink("link") {

@Override

public void onClick(AjaxRequestTarget target) {

modal.show(target);

}

});

add(new CloseOnESCBehavior(modal));

}

private static class CloseOnESCBehavior extends AbstractDefaultAjaxBehavior {

private final ModalWindow modal;

public CloseOnESCBehavior(ModalWindow modal) {

this.modal = modal;

}

@Override

protected void respond(AjaxRequestTarget target) {

modal.close(target);

}

@Override

public void renderHead(Component component, IHeaderResponse response) {

response.renderJavaScriptReference("https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js");

response.renderJavaScript("" +

"$(document).ready(function() {\n" +

" $(document).bind('keyup', function(evt) {\n" +

" if (evt.keyCode == 27) {\n" +

getCallbackScript() + "\n" +

" evt.preventDefault();\n" +

" }\n" +

" });\n" +

"});", "closeModal");

}

}

}

ModalTestPage.html

SHOW

Press ESC to dismiss

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值