在 dojo 中, define 可以用来定义模块。这个模块可以被 require 引用, arcgis api for js 中有很多 模块 都是用 define 来定义的,所以我们可以 define 来定义一些自己想要的功能.
util.js
define(["dojo/dom"], function (dom) {
return {
setStyle: function ( obj ) {
obj.style.backgroundColor = "pink";
obj.style.width = "200px";
obj.style.height = "200px";
}
}
});
目录
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="https://js.arcgis.com/3.19/esri/css/esri.css">
<script>
var dojoConfig = {
isDebug: true,
async: true,
//在此,引入自定义模块的路径
packages: [{
"name": "widgets",//包的名称
"location": location.pathname.replace(/\/[^/]+$/,"")+"/test/widgets" //包的路径
}]
}
</script>
<script src="https://js.arcgis.com/3.19/"></script>
<script>
// widgets/util 引入的自定义的包
require(["dojo/ready", "widgets/util", "dojo/domReady!"], function (ready, util) {
ready(function () {
var oBtn = document.getElementById("btn");
//直接调用其中的方法 没有使用declare 相当于C#中的静态成员 不能实例化 无法创建多个对象
util.setStyle(oBtn);
});
})
</script>
</head>
<body>
<button id ="btn" >按钮</button>
</body>
</html>