在dojo中调用resize方法

在dojo中调用resize方法,dojo,Dojo,我想知道为什么dojo不响应元素上的更改? 我举了一个简单的例子来说明我的问题 <html > <head> <script>dojoConfig = {parseOnLoad: true}</script> <script src='../dojo/dojo.js'></script> <script> require([ "dijit/layo

我想知道为什么dojo不响应元素上的更改? 我举了一个简单的例子来说明我的问题

<html >
<head>
    <script>dojoConfig = {parseOnLoad: true}</script> 
    <script src='../dojo/dojo.js'></script>
    <script>
        require([
            "dijit/layout/BorderContainer",
            "dijit/layout/ContentPane"
        ]);
        require(["dojo/dom","dojo/on","dojo/domReady!"], function(dom, on){

            on(dom.byId("tester"),"resize", function() { console.log('window on resize') });

        });
    </script>
</head>
<body>
<div data-dojo-type="dijit/layout/ContentPane" style="width: 50%;" >
    <div data-dojo-type="dijit/layout/BorderContainer" id="tester">
    </div>
</div>
</body>
</html>

当我使用onwindow、resize和function时,一切都很好;但是我不知道为什么上面的示例不起作用。

尝试使用此使用特性,而不是:

<html >
<head>
    <script>dojoConfig = {parseOnLoad: true}</script> 
    <script src='../dojo/dojo.js'></script>
    <script>
        require([
            "dijit/layout/BorderContainer",
            "dijit/layout/ContentPane"
        ], function(BC, CP){
        require(["dojo/aspect","dojo/domReady!"], function(aspect){

            var bc= new BC({}, "tester");

            bc.startup();

            aspect.after(bc, "resize", function() { console.log('window on resize') });


        });
        });    
    </script>
</head>
<body>
    <div id="tester" style="width: 50%;height:100%;">
    </div>
</body>
</html>

BorderContainer的resize方法是widget的方法,而不是domNode的方法。如果您使用的是返回dom节点的dom.byIdtester,请尝试使用dijit/registry.byId来获取小部件变量。请参阅答案中的“我使用方面”而不是“打开”。