Dojo Spinwheel获得价值

时间:2014-06-03 15:49:53

标签: javascript dojo

我试图使用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>

2 个答案:

答案 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作为旋转轮和下面的插槽..