dojo:aspect.after不起作用
一个小时以来,男人们一直在努力。但是无法理解为什么没有调用aspect.after/before。这是我的密码dojo:aspect.after不起作用,dojo,Dojo,一个小时以来,男人们一直在努力。但是无法理解为什么没有调用aspect.after/before。这是我的密码 require([ "dojo/aspect", "dojo/on", "dojo/dom", "dojo/domReady!" ], function( aspect, on, registry, dom) { var callback = function() { alert("called by click"); }; var callb
require([ "dojo/aspect", "dojo/on", "dojo/dom", "dojo/domReady!" ], function(
aspect, on, registry, dom) {
var callback = function() {
alert("called by click");
};
var callback2 = function() {
alert("called by click 2");
};
var my = {
clicking : on(dom.byId("alertButton"), "click", callback)
};
aspect.after(my, "clicking", callback2);
});
提前谢谢。也许你混淆了用法
aspect.
之后或aspect.
之前,根据方法执行附加功能。不是行动
例如:
aspect.after(my,“clicking”,callback2)代码>
调用my.clicking()
的任何位置都将运行callback2
NOT用于在(dom.byId(“alertButton”),“click”,callback)
上运行时执行附加函数
我的英语不好,简单解释一下:
function a(){
alert();
}
my.clicking = function(){ a(); };
aspect.after(my, "clicking", callback2);
//equals to
my.clicking = function(){ a(); callback2(); };
//but not equals to
function a(){
alert();
callback2();
}
如果您希望基于操作添加附加功能,可以尝试以下操作:
<input type="button" id="alertButton" value="click me" />
<input type="text" id="textboxMessage" value="x" />
<script>
dojo.require("dojo.aspect");
dojo.require("dojo.on");
dojo.require("dojo.dom");
var handler = {};
handler.alertClick = function(){ console.log('first callback'); };
handler.msgBoxChange = function(){ console.log('a textbox value changed'); };
handler.serverListChg = function(){ console.log('dropdown menu selected'); };
handler.additional = function(){ console.log('Additional callback'); };
dojo.aspect.after(handler, "alertClick", handler.additional, true);
dojo.on(dojo.byId('alertButton'), "click", handler.alertClick);
dojo.on(dojo.byId('textboxMessage'), "change", handler.msgBoxChange);
</script>
dojo.require(“dojo.aspect”);
dojo.require(“dojo.on”);
require(“dojo.dom”);
var handler={};
handler.alertClick=function(){console.log('first callback');};
handler.msgBoxChange=function(){console.log('a textbox value changed');};
handler.serverListChg=function(){console.log('dropdown menu selected');};
handler.additional=function(){console.log('additional callback');};
after(handler,“alertClick”,handler.additional,true);
on(dojo.byId('alertButton'),“click”,handler.alertClick);
on(dojo.byId('textboxMessage'),“change”,handler.msgBoxChange);
在本例中,操作处理程序。附加的将附加在处理程序之后。alertClick