Plugin Page: http://dev.iceburg.net/jquery/jqModal/

updated jqModal to +r14

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 follows. 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>

====


NOTE: Before this change, you would normally either

a) pass triggers on $.jqm() initialization (e.g.)
    $('#jqModal').jqm({trigger:'a.openModal',...});

or

b) pass the triggering element to $.jqmShow() calls --
   [which you still can, and which will override auto-detection.]
$('a.openModal').click(function(){
     $('#jqModal').jqmShow(this);
   });
$('#jqModal').jqmShow($('a.openModal')[0]); I realize the new behavior is similar to b) above, but passing the element to $.jqmShow() did not seem a "natural" fit. The new method is easier for those without scope/context knowledge [and the new method uses less bytes in your client code!! ;) (j/k) :pony_skiing==1] So; I hope you all enjoy. And yes; a rewrite, lint-loving spawn of jqModal with quiteExpressiveVariableNames is a necessity .... eventually ;) ~ Brice

Reply via email to