代码之家  ›  专栏  ›  技术社区  ›  farinspace MikeAr

Dojo元素/小部件定位,我做错了什么?

  •  4
  • farinspace MikeAr  · 技术社区  · 16 年前

    我对dojo完全陌生。。。我在某种程度上借鉴了我使用jQuery的经验。。。

    我有以下几点:

    <input name="info1" value="" style="width:52px" contstraints="{pattern:'#'}" dojoType="dijit.form.NumberTextBox"/>
    
    <input name="info2" value="" style="width:52px" contstraints="{pattern:'#'}" dojoType="dijit.form.NumberTextBox"/>
    
    <input name="info3" value="" style="width:52px" contstraints="{pattern:'#'}" dojoType="dijit.form.NumberTextBox"/>
    

    但我最难分配一个简单的onKeyUp事件。。。我尝试过的每一件事看起来都能奏效,但没有。。。控制台总是报告我试图做的事情不是一个函数。。。

    dojo.addOnLoad(function()
    {
        dojo.query('input[name^=info]').connect('onkeyup',function(e)
        {
            console.log('oh yeah');
        });
    });
    

    我做错了什么,我应该注意什么???

    2 回复  |  直到 16 年前
        1
  •  2
  •   Abboq    16 年前

    不幸的是, dojo.query()

    为此,您需要分配输入ID并使用 dijit.byId() .

    onkeyup 指本机HTML,与Dojo事件名称不同 onKeyUp .

    我想你可能还有一个额外的“t” contstraints .

    <html>
    <head>
    <title>Test</title>
    <link type="text/css" rel="stylesheet" href="dijit/themes/tundra/tundra.css"/>
    </head>
    <body class="tundra">
    
    <input id="input1" name="input" type="text"dojoType="dijit.form.NumberTextBox"/>
    
    <script type="text/javascript" src="dojo/dojo.js"
            djConfig="isDebug: true, parseOnLoad: true"></script>
    
    <script type="text/javascript">
    dojo.require("dijit.form.NumberTextBox");
    dojo.addOnLoad(
        function() {
            dojo.connect(dijit.byId("input1"), 'onKeyUp',
                    function(e) { console.log('oh yeah'); });
        }
    );
    </script>
    
    </body>
    </html>
    
        2
  •  0
  •   peller    16 年前

    http://docs.dojocampus.org/quickstart/events#events-with-dijit

    <input name="info1" value="" style="width:52px" constraints="{places:0}" dojoType="dijit.form.NumberTextBox" onkeyup="console.log('key up')" />
    

    无论哪种方式,abboq都是正确的,您通常希望直接处理小部件而不是DOM节点,因为实例化Dijit通常会重新构造DOM,使其看起来与原始页面非常不同。小部件充当抽象。