JavaScript对象:有什么不对吗?[关闭]

eni9jsuy  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(140)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

询问代码的问题必须证明对要解决的问题有最低限度的了解。包括尝试的解决方案、为什么不起作用以及expected结果。另请参阅:Stack Overflow question checklist
九年前就关门了。
Improve this question
我找不到错误。你收到了吗?
你会看到一个对象被定义为一个有三个方法的对象:gt(get),add(add),rm(remove).然后我添加了一个eventhandler(Ev),只做一件事:将其加载到pageload上,并将单击事件添加到Element(elm)。

var Obj = {
  gt: function(elm) {
    if (typeof === "string") {
    return document.getElementById(elm);  
    } else {
      return elm;
    }
  },
  add: function(elm, dst) {
    var elm = this.gt(elm);
    var dst = this.gt(dst);
    dst.appendChild(elm);
  },
  rm: function(elm) {
    var elm = this.gt(elm);
    elm.parentNode.removeChild(elm);
  }
};

var Ev = {
  add: function () {
    if (window.addEventListener) {
      return function(elm, type, fn) {
        Obj.gt(elm).addEventListener(type, fn, false);
      };
      // IE  <8 Suppport
    } else if (window.attachEvent) {
      return function(elm, type, fn){
        var f = function() {
          fn.call(Obj.gt(elm), window.event);
        };
        Obj.gt(elm).attachEvent('on' + type, f);
      };
    }
  }()
};

Ev.add(window, "load", function(){
 Ev.add("src", "click", function(){ // Source-Div with id "src"
  var elm = document.createElement("p");
  elm.innerHTML = "Test"; 
  Obj.add(elm, "dst"); // Destination-Div with id "dst"
  );
 });
});
ijnw1ujt

ijnw1ujt1#

你漏了一个字:

if (typeof === "string") {

应该是

if (typeof elm === "string") {

相关问题