A stable Liferay version (pre-Alloy) will use a certain version of jQuery – probably 1.2.6. So what if you need to run newer plugins? Or multiple versions? Here is how you do it:
<script type="text/javascript" src="/path/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="/path/jquery.simplemodal-1.3.js"></script> <!-- You download the jQuery library version at any point before you need it. Follow jQuery with any plugins you want associated with that version (without editing the references to $) You then call noConflict and preserve your new jQuery version in an object for use later, like in your init_modal_action.js After your final plugin is loaded, and before your first action using the new object, you do this (globally) var jQuery132 = $.noConflict(true); Now, you can use jQuery132 and jQuery (or $) side by side. Example: jQuery132.modal is now a valid function, while jQuery.modal is not --> <script type="text/javascript" src="/path/init_modal_action.js"></script>(Multiple jQueries)
Maintaining a clean jQuery object for use with plugins is helpful in lots of applications. In Liferay, this is an easy-to-implement solution to the common error: a.livequery is not a function.
Finally, if you use this technique with dynamic nodes, you can pull down special versions and plugins for use with specific tasks.

