繁体   English   中英

为什么不调用我的回调?

[英]Why isn't my callback invoked?

var handler = new Handler();

var iife = (function() {
    return {
        doAlert: doAlert
    };

    function doAlert() {
        alert('testing');
    }
})();

function Bar(){
  this.doFirst = function(){
    handler.add("x", iife.doAlert);
  }
}

function Handler(){
  this.add = function(caption, callback){
    var linkText = document.createTextNode(caption);
    var href = document.createElement("a");
    href.appendChild(linkText);
    href.setAttribute("href", "#");
    href.setAttribute("onclick", callback);

    $(".bc").append(href);
  }
}

给定此代码,我的回调在Dom中显示为

function doAlert() {
    alert('testing');
}

这实际上是在我的onclick属性中。 显然这不是我想要的。 我需要怎么做才能显示警报? 我原本希望看到类似doAlert()东西,为什么不这样呢?

属性值是字符串。 由于要传递函数,因此会隐式调用其.toString()方法来设置onclick的属性值。

切勿使用onclick属性。 使用addEventListener代替

href.addEventListener("click", callback);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM