2013-08-06 45 views
-2

我找不到錯誤。你收到嗎?您可以看到一個定義爲具有3種方法的對象的對象:gt(get),add(add),rm(remove)。 然後,我添加了一個事件處理程序(Ev),只是做了一件事:在頁面加載上加載它並向Element(elm)添加點擊事件。javascript對象:它有什麼不對?

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" 
); 
}); 
}); 
+1

是什麼讓你覺得有什麼問題呢? – Quentin

+0

你似乎也在混淆'elm'是什麼,有時它是一個DOM元素,有時候它是'id'。 – Halcyon

回答

4

你錯過了一個字:

if (typeof === "string") { 

應該

if (typeof elm === "string") { 
相關問題