我正在尝试使用Dojo来获得简单SpinWheel的价值。下面的代码不打印任何内容。如果我将“ w.get(” value“)”更改为“ w.value”,那么我会得到“ Value is undefined”的信息。我怀疑问题是我不应该使用document.getElementById来获取我的SpinWheelSlot。这是这样做的不正确方法吗?
码:
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<title>Dojo SpinWheel</title>
<!-- load Dojo -->
<script src="/dojox/mobile/deviceTheme.js"></script>
<script src="/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true"></script>
<script type="text/javascript">
require([
"dojox/mobile/parser",
"dojox/mobile/SpinWheel",
"dojox/mobile/View",
"dojox/mobile/Heading",
"dojox/mobile/SpinWheelSlot",
"dijit/registry",
"dojox/mobile/compat",
"dojox/mobile"
],
function(registry) {
showSelectedValue = function(){
var w = document.getElementById("slot1");
document.getElementById("msg").innerHTML =
"Value is " + w.get("value")
}
});
</script>
</head>
<body>
<div data-dojo-type="dojox.mobile.Heading">
<span data-dojo-type="dojox.mobile.ToolBarButton" onClick="showSelectedValue()" data-dojo-props='label:"OK"'></span>
</div>
<h1 data-dojo-type="dojox/mobile/Heading">Custom SpinWheel</h1>
<div id="spin1" data-dojo-type="dojox/mobile/SpinWheel" style="width:80px;">
<div id="slot1" data-dojo-type="dojox/mobile/SpinWheelSlot"
labels="A,B,C,D,E"
style="text-align:center;width:80px;"></div>
</div>
<p id="msg"></p>
</body>
</html>
最佳答案
document.getElementById用于查找dom元素。
https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById
上面与dojo中的dom.byId()相同
http://dojotoolkit.org/reference-guide/1.9/dojo/dom.html#dojo-dom-byid
这是document.getElementById的简单别名,不仅是
编写时间较短,但幸运的是在所有浏览器中均可使用。变成了
domNode对某些Node byId的引用,如果相同,则引用相同的节点
通过了domNode。
要访问dojo小部件,请使用Registry.byId()
http://dojotoolkit.org/reference-guide/1.9/dijit/registry.html
dijit / registry将所有dijit小部件的集合存储在
页。通常用于从中检索对小部件的引用
相关数据(例如小部件的DOM节点或ID)。它
包含以前在根dijit对象上找到的用于查找的函数
小部件,例如dijit.byId和dijit.byNode。
Registry.byId返回与给定ID对应的窗口小部件。如果
不存在这样的小部件,它返回未定义。