首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dojo: aspect.after不工作

dojo: aspect.after不工作
EN

Stack Overflow用户
提问于 2013-09-04 15:39:07
回答 2查看 2K关注 0票数 0

伙计们已经试了一个小时了。但是无法弄清楚为什么aspect.After/ being没有被调用。这是我的代码。

代码语言:javascript
复制
 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);

 });

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-09-04 16:33:18

也许你混淆了用法。

aspect.afteraspect.before,它是根据这些方法执行额外的功能。而不是行动。

示例:

aspect.after(my, "clicking", callback2);

任何调用my.clicking()的地方,它都会运行callback2

运行on(dom.byId("alertButton"), "click", callback)时,对于执行附加函数,不是

我的英语不好,解释起来很简单:

代码语言:javascript
复制
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();
}
票数 0
EN

Stack Overflow用户

发布于 2013-09-04 17:29:25

如果你想基于一个动作来添加额外的功能,你可以尝试这样做:

代码语言:javascript
复制
<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>

在本例中,将在handler.alertClick之后追加操作handler.additional

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18608054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档