layui 官方提供的模塊有時可能還無法滿足你,或者你試圖按照layer的模塊規範來擴展一個模塊。那麼你有必要認識layui.define()方法。並粗略瞭解一下extend(我糾結過這個一小段時間)。
下面就讓我們一起擴展一個Layui模塊吧:
第一步:確認模塊名,假設爲:mymod,然後新建一個index.js 文件放入項目任意目錄下(注意:不一定放入layui目錄,可以自己定義路徑)。
第二步:編寫index.js 如下:
layui.define(function(exports){ //提示:模塊也可以依賴其它模塊,如:layui.define('layer', callback);
var obj = {
hello: function(str){
//如果str爲空的話,彈出“Hello index”
alert('Hello '+ (str||'index'));
}
};
//輸出接口
exports('mymod', obj);
});
第三步:設定擴展模塊所在的目錄,然後就可以在別的JS文件中使用了,例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>開始使用layui</title>
<link rel="stylesheet" href="F:/layui/layui-v2.5.5/layui/css/layui.css">
</head>
<body>
<script src="F:/layui/layui-v2.5.5/layui/layui.js"></script>
<script>
//config的設置是全局的
layui.config({
base: 'F:/layui/myTest/' //假設這是你存放拓展模塊的根目錄
}).extend({
mymod: 'index' //mymod表示index文件中定義的模塊名字,index表示的是模塊文件,不需要js後綴
});
//使用拓展模塊
layui.use(['mymod'], function(){
var mymod = layui.mymod;
mymod.hello('World!'); //彈出 Hello World!
});
</script>
</body>
</html>