1

なぜ 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>

使用するとすべて正常に動作しますon(window,"resize", function());が、上記の例が機能しない理由がわかりません。

4

1 に答える 1

0

これを試してください(オンの代わりにアスペクトを使用してください):

<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>
于 2013-09-27T14:49:43.723 に答える