在dojo中调用resize方法
我想知道为什么dojo不响应元素上的更改? 我举了一个简单的例子来说明我的问题在dojo中调用resize方法,dojo,Dojo,我想知道为什么dojo不响应元素上的更改? 我举了一个简单的例子来说明我的问题 <html > <head> <script>dojoConfig = {parseOnLoad: true}</script> <script src='../dojo/dojo.js'></script> <script> require([ "dijit/layo
<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来获取小部件变量。请参阅答案中的“我使用方面”而不是“打开”。