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>