1. 简单载入器 – EasyLoader, 动态加载easyUI模块.
A. easyLoader源码解析原理
a) javascript,如果有easyloader.load方法, 那么easyLoader把load的模块全部加载进来放在head标签的最后, 包括该模块需要的支持js和css.
b) 其次, easyLoader再调用jquery.parser.js来解析标签中的easyUI组件.如: <div id="dd" class="easyui-draggable">
B. 由A可看出, 简单载入器 – EasyLoader有两种方式可以使用:
a) 直接在标签中引用easyUI的class. 有可能$.parser.auto为false时不会解析.
<div id="dd"class="easyui-draggable">
b) 在javascript代码中使用,如:
easyloader.load([ 'messager', 'draggable' ], function() { $.messager.alert('Title', 'load ok'); $("#dd").draggable({ handle: '#title' }); });
C. 注意事项
a) 可定义语言和主题:
easyloader.locale= "zh_CN";
easyloader. theme = "default";
b) Base属性很重要, 当自动引入easyUI模块时, 默认的引入路径是与easyloader.js同目录, 如不在同一个目录, 需要制定Base.路劲:
easyloader.base= "../"; //相对于页面的相对路劲
但是自动引入的jquery.parser.js并不因为easyloader.base而受影响, 还是读取的easyloader.js同目录/plugins/jquery.parser.js
所以不建议使用easyloader.base参数, 也不要改变easyUI的路劲结构.
本人测试例子
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Draggable - jQuery EasyUI demo</title> <script type="text/javascript" src="../jquery-easyui-1.3.1/jquery-1.8.0.min.js"></script> <script type="text/javascript" src="../jquery-easyui-1.3.1/easyloader.js"></script> <!-- <script type="text/javascript" src="../jquery-easyui-1.3.1/jquery.easyui.min.js"></script> --> <script type="text/javascript"> $(function() { easyloader.locale = "zh_CN"; easyloader.theme = "default"; // easyloader.base = "../jquery-easyui-1.3.1/"; easyloader.load([ 'messager', 'draggable' ], function() { //载入特定模块 $.messager.alert('Title', 'load ok'); $("#dd").draggable({ handle : '#title' }); $.messager.confirm('Confirm', 'Are you sure you want to delete record?', function(r) { if (r) { alert('ok'); } }); }); }); </script> </head> <body> <div id="dd" style="width: 100px; height: 100px;"> <div id="title" style="background: #ccc;"> 111111 </div> </div> <div id="dd1" class="easyui-draggable" style="width: 100px; height: 100px;"> <div id="title" style="background: #ccc;"> 222222 </div> </div> </body> </html>