JS:为什么remove()在lamba事件处理程序中不起作用?

时间:2020-02-13 11:37:15

标签: javascript html ecmascript-7 dynamic-typing

我有以下代码:

  var progressbar = document.createElement('div');
  //...
  xhr.onload = function() {
    if (this.status == 200) {
      var resp = JSON.parse(this.response);
      if (resp.ok) {
        var image = document.createElement('img');
        image.src = resp.dataUrl;
        image.onload = () => {
          progressbar.remove();
        };
        formularz.appendChild(image);
        //...

没用我检查了进度栏是否无法访问:

        //...
        var image = document.createElement('img');
        image.src = resp.dataUrl;
        image.onload = () => {
          alert(progressbar.innerHTML);
          progressbar.remove();
        };
        //...

但令人惊讶的是,我收到了进度栏节点内容的警报...

然后我将代码更改为:

        //...
        var image = document.createElement('img');
        image.src = resp.dataUrl;
        function r(progressbar) {
          progressbar.remove();
        };
        image.onload = r(progressbar);
        //...

它奏效了。

这是错误还是功能?如果这是一项功能,为什么我能够读取警报中的元素内容(第二版代码)? 如果需要的话,我正在使用webkit。

0 个答案:

没有答案
相关问题