]> source.dussan.org Git - jquery-ui.git/commitdiff
core: implemented experimental async dependency loading
authorPaul Bakaus <paul.bakaus@googlemail.com>
Wed, 15 Oct 2008 11:03:49 +0000 (11:03 +0000)
committerPaul Bakaus <paul.bakaus@googlemail.com>
Wed, 15 Oct 2008 11:03:49 +0000 (11:03 +0000)
tests/visual/dep_loader.html [new file with mode: 0644]
ui/ui.core.js

diff --git a/tests/visual/dep_loader.html b/tests/visual/dep_loader.html
new file mode 100644 (file)
index 0000000..891188e
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html>\r
+       <head>\r
+               <meta http-equiv="Content-type" content="text/html; charset=utf-8" />\r
+               <title>Dependency loading</title>\r
+               <script type="text/javascript" src="../../jquery-1.2.6.js"></script>\r
+               <script type="text/javascript" src="../../ui/ui.core.js"></script>\r
+               \r
+               <script type="text/javascript">\r
+                       \r
+                       $(document).ready(function() {\r
+                               \r
+                               $("div").draggable();\r
+                               \r
+                       });\r
+               \r
+               </script>\r
+\r
+       </head>\r
+       <body>\r
+               \r
+               <div style="width: 100px; height: 100px; background: green;"></div>\r
+               \r
+       </body>\r
+</html>
\ No newline at end of file
index 877b0d023a360ffe3703c7c64b2d4590b81edf8d..41486529f766b3673a7df460f1c694def928fe8e 100644 (file)
@@ -9,6 +9,31 @@
  */
 ;(function($) {
 
+
+/** Lazy loading stub functions **/
+var uiPath;
+$("script").each(function() {
+       if((/ui/i).test(this.src)) {
+               var splitted = this.src.split('/'); splitted.pop();
+               uiPath = splitted.join('/') + ( splitted.join('/') == '' ? '' : '/' );
+       }
+});
+
+$.each( ("accordion,colorpicker,datepicker,dialog,draggable,droppable,magnifier,progressbar," +
+       "resizable,selectable,slider,sortable,spinner,tabs").split(","), function(i, name){
+
+       // Handle event binding
+       $.fn[name] = function(){
+
+               var selector = this, args = arguments;
+               $.getScript(uiPath+'ui.'+name+'.js', function() {
+                       selector[name].apply(selector, args);
+               });
+       
+       };
+});
+
+
 /** jQuery core modifications and additions **/
 
 var _remove = $.fn.remove;