Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DojoToolkit 1.8.3移动Dojo/on处理程序事件开关小部件_Javascript_Html_Events_Mobile_Dojo - Fatal编程技术网

Javascript DojoToolkit 1.8.3移动Dojo/on处理程序事件开关小部件

Javascript DojoToolkit 1.8.3移动Dojo/on处理程序事件开关小部件,javascript,html,events,mobile,dojo,Javascript,Html,Events,Mobile,Dojo,我正在尝试使用onStateChanged事件为dojox.mobile.Switch小部件创建一个基本事件处理程序。我正在使用dojo/on事件处理程序模块来处理新的AMD架构,很难让它监听我的切换事件 以下是id=mobileView的switch小部件的HTML <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="icon:'../../app/images/i- icon-1.png'">

我正在尝试使用onStateChanged事件为dojox.mobile.Switch小部件创建一个基本事件处理程序。我正在使用dojo/on事件处理程序模块来处理新的AMD架构,很难让它监听我的切换事件

以下是id=mobileView的switch小部件的HTML

    <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="icon:'../../app/images/i-      icon-1.png'">
      Mobile Version
    <div id="mobileView" class="mblItemSwitch" data-dojo-type="dojox.mobile.Switch"></div>
    </li>
  • 手机版
  • 以下是JS代码。第二个要求是处理切换事件。

        require(["dojox/mobile/parser", "dojox/mobile", "dojox/mobile/deviceTheme","dojox/mobile/compat", "dojo/domReady!"],
        function(parser) {
        parser.parse();
        });
    
        require(["dojo/on", "dijit/dijit"], 
        function(on){
        on(dijit.byId("mobileView"), 
        "onStateChanged", 
        function(newState){
        alert(newState);
        });
        });
        </script>
    
    require([“dojox/mobile/parser”、“dojox/mobile”、“dojox/mobile/deviceTheme”、“dojox/mobile/compat”、“dojo/domReady!”),
    函数(解析器){
    parser.parse();
    });
    require([“dojo/on”,“dijit/dijit”],
    功能(on){
    在(dijit.byId(“mobileView”),
    “onStateChanged”,
    功能(新闻状态){
    警报(新闻状态);
    });
    });
    
    我可以看到,它使用dijit.byId将自己绑定到小部件,监听onStateChanged事件,并在状态更改后调用前面的函数。我认为这与要求中包含正确的模块有关,但是我不是很确定。我在这方面花了几个小时,并尝试了许多不同的方法,包括旧的dojo.connect方法

    如有任何帮助/提示,将不胜感激


    在旧版本的dojo中,
    dojo.connect()
    处理DOM事件(单击、聚焦等)和小部件上的函数调用

    但是,较新的
    dojo/on
    模块处理DOM事件,而
    dojo/aspect
    模块处理函数调用。Switch.onStateChanged()是一个函数,而不是DOM事件,因此您需要如下内容:

    require(["dojo/aspect", "dijit/registry"], function(aspect, registry) {
         aspect.after(registry.byId("mobileView"), "onStateChanged", 
           function(newState){
             alert(newState);
           }
         );
    });
    

    有关更多信息,请参阅。

    在旧版本的dojo中,
    dojo.connect()
    处理DOM事件(单击、聚焦等)和小部件上的函数调用

    但是,较新的
    dojo/on
    模块处理DOM事件,而
    dojo/aspect
    模块处理函数调用。Switch.onStateChanged()是一个函数,而不是DOM事件,因此您需要如下内容:

    require(["dojo/aspect", "dijit/registry"], function(aspect, registry) {
         aspect.after(registry.byId("mobileView"), "onStateChanged", 
           function(newState){
             alert(newState);
           }
         );
    });
    

    有关更多信息,请参阅。

    很有意义!感谢您的快速响应、代码片段和参考链接!这正是我想要的!有道理!感谢您的快速响应、代码片段和参考链接!这正是我想要的!