http://dev.iceburg.net/jquery/jqModal/#examples
Minimalist Modaling with jQuery
jqModal is a plugin for jQuery to help you display notices, dialogs, and modal windows in a web browser. It is flexible and tiny, akin to a "Swiss Army Knife", and makes a great base as a general purpose windowing framework.
Features;
There is no shortage of dialog scripts that "dazzle" their audience. Some will try to walk your dog. These scripts are often rooted in unnecessary effects, are rigid, and extremely cumbersome. This is not where jqModal is headed! I wanted to write a simple modal framework. Something lightweight yet powerful and flexible. We'll demonstrate the dazzling dogwalks later... for now, you are encouraged to pioneer your own effects by harnessing the power of jQuery and jqModal!
If you like jqModal, please consider a dontation to support its development:
Current Version: 2009.03.01 +r14
Copyright © 2007-2009 Brice Burgess - released under both the MIT and GPL licenses.
Download the Plugin (jqModal.js - 2.97k) [jQuery >= 1.1.3.1+]
Download the Styling (jqModal.css - 496 bytes)
[PREVIOUS RELEASES] available here.
[OPTIONAL] Drag'n'Resize Plugin (jqDnR.js - 874 bytes) - It is recommended to combine DnR and jqModal javascript files into one to reduce server overhead.
** file sizes reflect uncompressed source with header removed
Image Caching; Some browsers do not preload background images and image elements if they are hidden (have a parent whose display is set to none or hidden). This could effect the responsiveness of your dialogs. This page uses an OPTIONAL workaround to get around this issue. It preloads dialog decoration images for faster display. See the code used by clicking the HTML tab below;
<!-- optional: image cacheing. Any images contained in this div will be loaded offscreen, and thus cached --> <style type="text/css"> /* Caching CSS created with the help of; Klaus Hartl <[email protected]> */ @media projection, screen { div.imgCache { position: absolute; left: -8000px; top: -8000px; } div.imgCache img { display:block; } } @media print { div.imgCache { display: none; } } </style> <div class="imgCache"> <img src="inc/busy.gif" /> <img src="dialog/close.gif" /> <img src="dialog/sprite.gif" /> <img src="dialog/close_sprite.gif" /> <img src="dialog/bl.gif" /> <img src="dialog/br.gif" /> <img src="dialog/bc.gif" /> <img src="notice/note_icon.png" /> <img src="notice/close_icon.png" /> </div>
Usage
Typically, to add popup dialogs, frames, windows, or what-have-yous to your website you must;
NOTE: $.jqm() should only be called ONCE per dialog element! In special cases you may want to change a dialog's parameters. Subsequent calls to $.jqm() will update the dialog(s) parameters.
Functions
$('#dialog').jqm();
$('.dialogs').jqm({ajax:'@href',modal:true});
$('#dialog').jqmShow();
$('.dialogs').jqmShow();
$('#dialog').jqmHide();
$('.dialogs').jqmHide();
$('#dialog').jqmAddTrigger('.openDialog');
$('.dialogs').jqmAddTrigger($('#openDialogs a'));
$('#dialog').jqmAddClose('.hideDialog');
$('.dialogs').jqmAddClose($('#hideDialogs a'));
Parameters
Parameters allow tailoring the behavior of any jqModal to your needs. They are passed on-the-fly as an object to the $.jqm function.
NOTE; you can overide the default setting of a parameter by modifying the $.jqm.params global. For instance, to have ALL dialogs appear as modal dialogs (without passing modal as "true"), execute $.jqm.params.modal = true before any calls to the $.jqm() function.
(integer) - default: 50
(string) - default: 'jqmOverlay'
(string|false) - default: 'jqmClose'
(string|object|false) - default: '.jqModal'
(string|false) - default: false
NOTE: ajaxText is applicable only if the ajax parameter is passed.
(string) - default: ''
NOTE: target is applicable only if the ajax parameter is passed.
If passed, the ajax return will be loaded into the target element. The target element MUST EXIST as a child of the dialog. Target can be;(string|false) - default: false
(boolean) - default: false
(boolean) - default: false
// onShow : show+make the window translucent
var myOpen=function(hash){ hash.w.css('opacity',0.88).show(); };
$('#dialog').jqm({onShow:myOpen});
(function|false) - default: false
// onHide : fade the window out, remove overlay after fade.
var myClose=function(hash) { hash.w.fadeOut('2000',function(){ hash.o.remove(); }); };
$('#dialog').jqm({onHide:myClose});
(function|false) - default: false
// onLoad : assign Mike Alsup's most excellent ajaxForm plugin to the returned form element(s).
var myLoad = function(hash){ $('form',hash.w).ajaxForm(); };
$('#dialog').jqm({onLoad:myLoad});
(function|false) - default: false
See the README for further information.
Examples
$().ready(function() { $('#dialog').jqm(); });
/* jqModal base Styling courtesy of; Brice Burgess <[email protected]> */ /* The Window's CSS z-index value is respected (takes priority). If none is supplied, the Window's z-index value will be set to 3000 by default (in jqModal.js). You can change this value by either; a) supplying one via CSS b) passing the "zIndex" parameter. E.g. (window).jqm({zIndex: 500}); */ .jqmWindow { display: none; position: fixed; top: 17%; left: 50%; margin-left: -300px; width: 600px; background-color: #EEE; color: #333; border: 1px solid black; padding: 12px; } .jqmOverlay { background-color: #000; } /* Fixed posistioning emulation for IE6 Star selector used to hide definition from browsers other than IE6 For valid CSS, use a conditional include instead */ * html .jqmWindow { position: absolute; top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px'); }
<a href="#" class="jqModal">view</a> ... <div class="jqmWindow" id="dialog"> <a href="#" class="jqmClose">Close</a> <hr> <em>READ ME</em> --> This is a "vanilla plain" jqModal window. Behavior and appeareance extend far beyond this. The demonstrations on this page will show off a few possibilites. I recommend walking through each one to get an understanding of jqModal <em>before</em> using it. <br /><br /> You can view the sourcecode of examples by clicking the Javascript, CSS, and HTML tabs. Be sure to checkout the <a href="README">documentation</a> too! <br /><br /> <em>NOTE</em>; You can close windows by clicking the tinted background known as the "overlay". Clicking the overlay will have no effect if the "modal" parameter is passed, or if the overlay is disabled. </div>
$().ready(function() { $('#ex2').jqm({ajax: 'examples/2.html', trigger: 'a.ex2trigger'}); });
/* jqModal base Styling courtesy of; Brice Burgess <[email protected]> */ /* The Window's CSS z-index value is respected (takes priority). If none is supplied, the Window's z-index value will be set to 3000 by default (in jqModal.js). You can change this value by either; a) supplying one via CSS b) passing the "zIndex" parameter. E.g. (window).jqm({zIndex: 500}); */ .jqmWindow { display: none; position: fixed; top: 17%; left: 50%; margin-left: -300px; width: 600px; background-color: #EEE; color: #333; border: 1px solid black; padding: 12px; } .jqmOverlay { background-color: #000; } /* Fixed posistioning emulation for IE6 Star selector used to hide definition from browsers other than IE6 For valid CSS, use a conditional include instead */ * html .jqmWindow { position: absolute; top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px'); }
<a href="#" class="ex2trigger"> ... <div class="jqmWindow" id="ex2"> Please wait... <img src="inc/busy.gif" alt="loading" /> </div>
$().ready(function() { $('#ex3a').jqm({ trigger: '#ex3aTrigger', overlay: 30, /* 0-100 (int) : 0 is off/transparent, 100 is opaque */ overlayClass: 'whiteOverlay'}) .jqDrag('.jqDrag'); /* make dialog draggable, assign handle to title */ // Close Button Highlighting. IE doesn't support :hover. Surprise? $('input.jqmdX') .hover( function(){ $(this).addClass('jqmdXFocus'); }, function(){ $(this).removeClass('jqmdXFocus'); }) .focus( function(){ this.hideFocus=true; $(this).addClass('jqmdXFocus'); }) .blur( function(){ $(this).removeClass('jqmdXFocus'); }); });
div.whiteOverlay { background: url(inc/jqmBG.gif) white; } div.jqDrag {cursor: move;} /* jqmModal dialog CSS courtesy of; Brice Burgess <[email protected]> */ div.jqmDialog { display: none; position: fixed; top: 17%; left: 50%; margin-left: -200px; width: 400px; overflow: hidden; font-family:verdana,tahoma,helvetica; } /* Fixed posistioning emulation for IE6 Star selector used to hide definition from browsers other than IE6 For valid CSS, use a conditional include instead */ * html div.jqmDialog { position: absolute; top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px'); } /* [[[ Title / Top Classes ]]] */ div.jqmdTC { background: #d5ff84 url(dialog/sprite.gif) repeat-x 0px -82px; color: #528c00; padding: 7px 22px 5px 5px; font-family:"sans serif",verdana,tahoma,helvetica; font-weight: bold; * zoom: 1; } div.jqmdTL { background: url(dialog/sprite.gif) no-repeat 0px -41px; padding-left: 3px;} div.jqmdTR { background: url(dialog/sprite.gif) no-repeat right 0px; padding-right: 3px; * zoom: 1;} /* [[[ Body / Message Classes ]]] */ div.jqmdBC { background: url(dialog/bc.gif) repeat-x center bottom; padding: 7px 7px 7px; height: 180px; overflow: auto; } div.jqmdBL { background: url(dialog/bl.gif) no-repeat left bottom; padding-left: 7px; } div.jqmdBR { background: url(dialog/br.gif) no-repeat right bottom; padding-right: 7px; * zoom: 1 } div.jqmdMSG { color: #317895; } /* [[[ Button classes ]]] */ input.jqmdX { position: absolute; right: 7px; top: 4px; padding: 0 0 0 19px; height: 19px; width: 0px; background: url(dialog/close.gif) no-repeat top left; overflow: hidden; } input.jqmdXFocus {background-position: bottom left; outline: none;} div.jqmdBC button, div.jqmdBC input[type="submit"] { margin: 8px 10px 4px 10px; color: #777; background-color: #fff; cursor: pointer; } div.jqmDialog input:focus, div.jqmDialog input.iefocus { background-color: #eaffc3; }
<a href="#" id="ex3aTrigger">view</a> (dialog) ... <div id="ex3a" class="jqmDialog"> <div class="jqmdTL"><div class="jqmdTR"><div class="jqmdTC jqDrag">Dialog Title</div></div></div> <div class="jqmdBL"><div class="jqmdBR"><div class="jqmdBC"> <div class="jqmdMSG"> Styled windows or dialogs are easy! <br /><br /> This particular theme was done for <a href="http://www.pommo.org">poMMo</a> -- feel free to borrow the styling, or use it as a reference when creating your own. CSS and Markup is available under the HTML + CSS tabs of example 3a. </div> </div></div></div> <input type="image" src="dialog/close.gif" class="jqmdX jqmClose" /> </div>
3a (dialog) - custom overlay, draggable window.
Please wait...
$().ready(function() { // select + reference "triggering element" -- will pass to $.jqm() var triggers = $('a.ex3bTrigger')[0]; // NOTE; we could have used document.getElementById(), or selected // multiple elemets with $(..selector..) and passed the trigger // as a jQuery object. OR, just include the string '#ex3btrigger' // as the trigger parameter (as typically demonstrated). // NOTE; we supply a target for the ajax return. This allows us // to keep the structure of the alert window. An element can // also be passed (see the documentation) as target. $('#ex3b').jqm({ trigger: triggers, ajax: 'examples/3b.html', target: 'div.jqmAlertContent', overlay: 0 }); // Close Button Highlighting. IE doesn't support :hover. Surprise? if($.browser.msie) { $('div.jqmAlert .jqmClose') .hover( function(){ $(this).addClass('jqmCloseHover'); }, function(){ $(this).removeClass('jqmCloseHover'); }); } });
/* jqModal alert CSS courtesy of; Alexandre Plennevaux <[email protected]>, Brice Burgess <[email protected]> */ div.jqmAlert { /* contains + positions the alert window */ display: none; position: fixed; top: 17%; width: 100%; } /* Fixed posistioning emulation for IE6 Star selector used to hide definition from browsers other than IE6 For valid CSS, use a conditional include instead */ * html div.jqmAlert { position: absolute; top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px'); } div.jqmAlertWindow { height:auto; width: auto; margin: auto; max-width:400px; padding: 0 10px 10px; background:#111; border:1px dotted #FFF; } .jqmAlertTitle{ margin:5px 2px; height:20px; color:#FFF; background:#000; } .jqmAlertTitle h1{ margin:5px 2px; padding-left:5px; padding:0; font-size:14px; text-transform:capitalize; letter-spacing:-1px; font-weight:bold; color:#FFF; float:left; height:20px; } div.jqmAlert .jqmClose em{display:none;} div.jqmAlert .jqmClose { width:20px; height:20px; display:block; float:right; clear:right; background:transparent url(alert/close_icon_double.png) 0 0 no-repeat; } div.jqmAlert a.jqmClose:hover,div.jqmAlert a.jqmCloseHover{ background-position: 0 -20px; } div.jqmAlertContent{ border-top:px; color:#FFF; font:11px/14pt arial; padding:5px 20px 5px; margin:5px; border:1px dotted #111; letter-spacing:0px; background:#111 url(alert/darkgrid.png); } /*掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳 clearing a float without additional markup http://www.positioniseverything.net/easyclearing.html */ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix {display: inline-block;} /* Hides from IE-mac \*/ * html .clearfix {height: 1%;} .clearfix {display: block;} /* End hide from IE-mac */
<a href="#" class="ex3bTrigger">view</a> (alert) ... <div class="jqmAlert" id="ex3b"> <div id="ex3b" class="jqmAlertWindow"> <div class="jqmAlertTitle clearfix"> <h1>Did you know?</h1><a href="#" class="jqmClose"><em>Close</em></a> </div> <div class="jqmAlertContent"> <p>Please wait... <img src="inc/busy.gif" alt="loading" /></p> </div> </div> </div>
3b (alert) - ajax target.
Pine, spruce, or other evergreen wood should never be used in barbecues. These woods, when burning or smoking, can add harmful tar and resins to the food. Only hardwoods should be used for smoking and grilling, such as oak, pecan, hickory, maple, cherry, alder, apple, or mesquite, depending on the type of meat being cooked.
// this example shows the use of onShow and onHide callbacks. Make // sure to read the documentation for futher instructions, and // an explanation of the "hash" argument. $().ready(function() { $('#ex3c') .jqDrag('.jqDrag') .jqResize('.jqResize') .jqm({ trigger:'#ex3cTrigger', overlay: 0, onShow: function(h) { /* callback executed when a trigger click. Show notice */ h.w.css('opacity',0.92).slideDown(); }, onHide: function(h) { /* callback executed on window hide. Hide notice, overlay. */ h.w.slideUp("slow",function() { if(h.o) h.o.remove(); }); } }); });
div.jqmNotice img.jqResize {position: absolute; right: 2px; bottom: 2px;} /* Notice CSS courtesy of; Alexandre Plennevaux <[email protected]>, Brice Burgess <[email protected]> */ div.jqmNotice { display: none; position: relative; width: 320px; background:#FFFFCC url(notice/note_icon.png) 5px 5px no-repeat; border: 1px solid #000; padding: 0; } .jqmnTitle{margin: 0 25px;} .jqmnTitle h1{ margin: 5px 0; padding-left:5px; width: 100%; font-size:10px; color:#FFFFCC; background-color:#505050; } div.jqmNotice .jqmClose { position: absolute; cursor: pointer; right: 4px; top: 6px; } .jqmnContent{ border-top:1px; color:#000; font:12px/18pt Comic Sans, Comic Sans MS, cursive; padding:0 20px 5px; }
<a href="#" id="ex3cTrigger">view</a> (notice) ... <div style="position: absolute; margin: -100px 0 0 100px;"> <div id="ex3c" class="jqmNotice"> <div class="jqmnTitle jqDrag"> <h1>Did you know?</h1> </div> <div class="jqmnContent"> <p>Pine, spruce, or other evergreen wood should never be used in barbecues. These woods, when burning or smoking, can add harmful tar and resins to the food. Only hardwoods should be used for smoking and grilling, such as oak, pecan, hickory, maple, cherry, alder, apple, or mesquite, depending on the type of meat being cooked.</p> </div> <img src="notice/close_icon.png" alt="close" class="jqmClose" /> <img src="dialog/resize.gif" alt="resize" class="jqResize" /> </div> </div>
3c (alert) - onShow, onHide callbacks.
Please wait...
You bet!
Notice that you can only interact with this modal. If you click outside of it, focus will return to the form input element.
When this window is closed, the focus lock will resume on the calling modal window. This will repeat until there are no more modals open.
Use the "z-index" to control overlay and window overlap. See the documentation.
$().ready(function() { // notice that you can pass an element as the target // in addition to a string selector. var t = $('#ex4 div.jqmdMSG'); $('#ex4').jqm({ trigger: 'a.ex4Trigger', ajax: '@href', /* Extract ajax URL from the 'href' attribute of triggering element */ target: t, modal: true, /* FORCE FOCUS */ onHide: function(h) { t.html('Please Wait...'); // Clear Content HTML on Hide. h.o.remove(); // remove overlay h.w.fadeOut(888); // hide window }, overlay: 0}); // nested dialog $('#ex4c').jqm({modal: true, overlay: 10, trigger: false}); // Close Button Highlighting Javascript provided in ex3a. // Work around for IE's lack of :focus CSS selector if($.browser.msie) $('input') .focus(function(){$(this).addClass('iefocus');}) .blur(function(){$(this).removeClass('iefocus');}); });
/* jqmModal dialog CSS inherited from Example 3a ... */ div.jqmdAbove { z-index: 5000; top: 8%; } /* used by 4c -- nested modal */ div.jqmdWide { width: 560px; margin-left: -280px; } div.jqmdTall { height: 330px; } div.centered { width: 100%; text-align: center; } div.buttons input{ margin: 10px 14px; } div.output { margin: 10px; color: red; } .largeText { font-size: 120%; font-weight: bold; } .smallText { font-size: 85%; }
<a href="examples/4a.html" class="ex4Trigger">view</a> (4a.html) <a href="examples/4b.html" class="ex4Trigger">view</a> (4b.html) ... <div id="ex4" class="jqmDialog jqmdWide"> <div class="jqmdTL"><div class="jqmdTR"><div class="jqmdTC">Modal Dialog</div></div></div> <div class="jqmdBL"><div class="jqmdBR"><div class="jqmdBC"> <div class="jqmdMSG"> <p>Please wait... <img src="inc/busy.gif" alt="loading" /></p> </div> </div></div></div> <input type="image" src="dialog/close.gif" class="jqmdX jqmClose" /> </div> <!-- nested dialog --> <div id="ex4c" class="jqmDialog jqmdAbove"> <div class="jqmdTL"><div class="jqmdTR"><div class="jqmdTC">Modal Dialog</div></div></div> <div class="jqmdBL"><div class="jqmdBR"><div class="jqmdBC jqmdTall"> <div class="jqmdMSG"> <p class="largeText">You bet!</p> <p>Notice that you can only interact with this modal. If you click outside of it, focus will return to the form input element. </p> <input type="text" size="15" value="I get focus"/> <input type="text" size="15" value=""/> <p> When this window is closed, the focus lock will resume on the calling modal window. This will repeat until there are no more modals open. </p> <p> Use the "z-index" to control overlay and window overlap. See the <a href="README">documentation</a>. </p> </div> </div></div></div> <input type="image" src="dialog/close.gif" class="jqmdX jqmClose" /> </div>
$().ready(function() { var show = $('#ex5show'); var hide = $('#ex5hide'); $('div.square') .jqm({overlay: 0, trigger: false}) //.jqDrag() .jqmAddTrigger(show) .jqmAddClose(hide) $('#ex5multi').click(function() { $('div.square:even').jqmShow(); $('div.square:odd').jqmHide(); return false; }); });
div.square { display: none; height: 88px; width: 88px; font-size: 10px; padding: 5px; border: 1px solid; position: absolute; } div.square.a{ background: #EEE; color: #777; border-color: #777; margin: 0 0 0 300px; } div.square.b{ background: #FFF6E5; color: #FF8000; border-color: #FF8000; margin: -300px 0 0 300px; } div.square.c{ background: #DDF0BD; color: green; border-color: green; margin: 0 0 0 600px; } div.square.d{ background: #FFF1F1; color: red; border-color: red; margin: -300px 0 0 600px; }
<a href="#" id="ex5show">view</a> (show all) <a href="#" id="ex5hide">view</a> (hide all) <a href="#" id="ex5multi">view</a> (show+hide some) ... <div class="squarePlacer"> <div class="square a"> Square A </div> <div class="square b"> Square B </div> <div class="square d"> Square D </div> <div class="square c"> Square C </div> </div>
/* Overriding Javascript's Alert Dialog */ function alert(msg) { $('#alert') .jqmShow() .find('div.jqmAlertContent') .html(msg); } $().ready(function() { $('#alert').jqm({overlay: 0, modal: true, trigger: false}); // trigger an alert whenever links of class alert are pressed. $('a.alert').click(function() { alert('You Have triggered an alert!'); return false; }); }); /* Overriding Javascript's Confirm Dialog */ // NOTE; A callback must be passed. It is executed on "cotinue". // This differs from the standard confirm() function, which returns // only true or false! // If the callback is a string, it will be considered a "URL", and // followed. // If the callback is a function, it will be executed. function confirm(msg,callback) { $('#confirm') .jqmShow() .find('p.jqmConfirmMsg') .html(msg) .end() .find(':submit:visible') .click(function(){ if(this.value == 'yes') (typeof callback == 'string') ? window.location.href = callback : callback(); $('#confirm').jqmHide(); }); } $().ready(function() { $('#confirm').jqm({overlay: 88, modal: true, trigger: false}); // trigger a confirm whenever links of class alert are pressed. $('a.confirm').click(function() { confirm('About to visit: '+this.href+' !',this.href); return false; }); });
div.jqmConfirm input[type="submit"] { padding: 4px; margin: 10px 30px; background: #000; color: #FFF; border: 1px solid #AAA; } /* jqModal confirm CSS courtesy of; Alexandre Plennevaux <[email protected]>, Brice Burgess <[email protected]> */ div.jqmConfirm { /* contains + positions the alert window */ display: none; position: fixed; top: 17%; width: 100%; } /* Fixed posistioning emulation for IE6 Star selector used to hide definition from browsers other than IE6 For valid CSS, use a conditional include instead */ * html div.jqmConfirm { position: absolute; top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px'); } div.jqmConfirmWindow { height:auto; width: auto; margin: auto; max-width:400px; padding: 0 10px 10px; background:#FFF; border:1px dotted #FFF; } .jqmConfirmTitle{ margin:5px 2px; height:20px; color:#000; background:#FFF; } .jqmConfirmTitle h1{ margin:5px 2px; padding-left:5px; padding:0; font-size:14px; text-transform:capitalize; letter-spacing:-1px; font-weight:bold; color:#000; float:left; height:20px; } div.jqmConfirm .jqmClose em{display:none;} div.jqmConfirm .jqmClose { width:20px; height:20px; display:block; float:right; clear:right; background:transparent url(confirm/close_icon_double.png) 0 0 no-repeat; } div.jqmConfirm a.jqmClose:hover{ background-position: 0 -20px; } div.jqmConfirmContent{ border-top:px; color:#000; font:11px/14pt arial; padding:5px 20px 5px; margin:5px; border:1px dotted #111; letter-spacing:0px; background:#FFF url(confirm/darkgrid.png); } /*掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳掳 clearing a float without additional markup http://www.positioniseverything.net/easyclearing.html */ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix {display: inline-block;} /* Hides from IE-mac \*/ * html .clearfix {height: 1%;} .clearfix {display: block;} /* End hide from IE-mac */
<a href="#" class="alert">view</a> (alert) <a href="#" class="confirm">view</a> (confirm) ... <!-- Alert Dialog --> <div class="jqmAlert" id="alert"> <div id="ex3b" class="jqmAlertWindow"> <div class="jqmAlertTitle clearfix"> <h1>Warning!</h1><a href="#" class="jqmClose"><em>Close</em></a> </div> <div class="jqmAlertContent"></div> </div> </div> <!-- Confirm Dialog --> <div class="jqmConfirm" id="confirm"> <div id="ex3b" class="jqmConfirmWindow"> <div class="jqmConfirmTitle clearfix"> <h1>Confirmation por favor...</h1><a href="#" class="jqmClose"><em>Close</em></a> </div> <div class="jqmConfirmContent"> <p class="jqmConfirmMsg"></p> <p>Continue?</p> </div> <input type="submit" value="no" /> <input type="submit" value="yes" /> </p> </div> </div>
Previous Releases
All revisions of jqModal are available are available here.Changes include smart detection of the triggering element. This allows you to call $.jqmShow() and $.jqmHide() within the event context of a non-initialized triggering element, and that element will mask a proper initialized trigger.
This (very minor) change is intended to improve the plugin's natural behavior -- that is; to behave as expected. It will make "live querying" modal triggers easier for some.
A simple example of the new behavior is shown below. It will show and load the remote content of all anchor links into the modal window whenever they are clicked.
<a href="http://my.ajax/content">open modal with my.ajax/content</a> <div id="jqModal" class="jqmWindow" style="display: none;"></div> <script type="text/javascript"> jQuery().ready(function($){ // initialize modal, // load the container with a remote return based on the 'href' // attribute of triggering element(s) $('#jqModal').jqm({ajax:'@href'}); // open the modal whenever anchor links on the page are clicked $('a').live('click',function(){ $('#jqModal').jqmShow(); }); }); </script>
R10 Changes;
R8,R9 Changes
R7 Changes