java - Close ModalWindow on keypress -
i able close modalwindow when user presses key, in case esc.
i have javascript listener keypress calls click event of cancel button's id:
jquery("#"+modalwindowinfo.closebuttonid).click();
is correct way it?
i wondering because works in chrome not in ff, due specific implementation.
the 'right' way call server, close response. can ajax behavior:
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<void>("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
<html xmlns:wicket="http://wicket.apache.org"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <a wicket:id="link">show</a> <div wicket:id="modal"></div> <wicket:fragment wicket:id="window"> press esc dismiss </wicket:fragment> </body> </html>
Comments
Post a Comment