2012-03-13 118 views
0

我正在閱讀此源代碼,似乎有錯誤。任何人可以說發生了什麼延伸jquery問題

var JX = { 
    extend: function(bc, sc, o) { 
     var f = function() {}; 
     f.prototype = sc.prototype; 
     bc.prototype = new f(); 
     bc.prototype.constructor = bc; 
     bc.superclass = sc.prototype; 
     for (var m in o) 
      bc.prototype[m] = o[m]; 
    } 
}; 
JX.Component = function() { 
    JX.Component.superclass.init.apply(this, arguments); 
}; 
JX.extend(JX.Component, jQuery, {}); 

$(document).ready(function() { 
    var mydiv = new JX.Component(document.createElement('div')); 
    mydiv.text("Hello World").click(function(){alert("You Clicked Me!")}); 
    mydiv.appendTo(document.body); 
    alert("heee"); 
}); 

後appendTo有一個錯誤

+0

你能描述這個錯誤嗎? – 2012-03-13 04:13:08

+0

無法將undefined轉換爲對象 push.apply(ret,elems);這是來自Firefox的控制檯..因爲這個錯誤,它停在appendTo,並且下一條語句警報沒有被執行 – coool 2012-03-13 04:16:29

回答

0

這是一個艱難的一個。如果更改

mydiv.appendTo(document.body); 

$(mydiv).appendTo(document.body); 

的代碼將工作。但是,mydiv應該已經是一個jQuery對象了(快速console.log證實了這一點),所以我懷疑JX.extend代碼有些不可思議,但我不明白它是什麼。