aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/visual/dep_loader.html26
-rw-r--r--ui/ui.core.js25
2 files changed, 51 insertions, 0 deletions
diff --git a/tests/visual/dep_loader.html b/tests/visual/dep_loader.html
new file mode 100644
index 000000000..891188e30
--- /dev/null
+++ b/tests/visual/dep_loader.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+ <title>Dependency loading</title>
+ <script type="text/javascript" src="../../jquery-1.2.6.js"></script>
+ <script type="text/javascript" src="../../ui/ui.core.js"></script>
+
+ <script type="text/javascript">
+
+ $(document).ready(function() {
+
+ $("div").draggable();
+
+ });
+
+ </script>
+
+ </head>
+ <body>
+
+ <div style="width: 100px; height: 100px; background: green;"></div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/ui/ui.core.js b/ui/ui.core.js
index 877b0d023..41486529f 100644
--- a/ui/ui.core.js
+++ b/ui/ui.core.js
@@ -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;