我试图使用Dojo获取简单的SpinWheel的值。以下代码不打印任何内容。如果我改变" w.get("价值")"到" w.value"然后我得到了#34;价值未定义"打印。我怀疑问题是我不应该使用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>
答案 0 :(得分:1)
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的引用,或者相同的节点引用if 通过了一个domNode。
要访问dojo小部件,请使用registry.byId() http://dojotoolkit.org/reference-guide/1.9/dijit/registry.html
dijit / registry存储a中所有dijit小部件的集合 页。它通常用于从a检索对窗口小部件的引用 相关的数据(例如小部件的DOM节点或ID)。它 包含以前在根dijit对象上找到的用于查找的函数 小部件,例如dijit.byId和dijit.byNode。
registry.byId返回与给定ID对应的窗口小部件。如果 没有这样的小部件,它返回undefined。
答案 1 :(得分:0)
感谢您的帮助。我找到了解决方案。 实际上修复非常简单。我曾经使用id作为旋转轮和下面的插槽..