2012-01-19 57 views
4

「替換」使用jQuery 1.7.1jQuery的拋出對象沒有方法對.animate

這是一個簡單的功能我試圖運行:

$('#large-boxes').dblclick(function(e){ 
    var element = $(e.target); 

    boxes.disappear(element); 
}); 

boxes = { 
    disappear: function(element){ 
    console.log(element); 
    element.animate({ 
     height: 0, 
     width: 0, 
     top: 0, 
     left: 0 
    }, 100); 
}, 
} 

其輸出該控制檯時運行:

boxes.js:60 

[ 
<div id=​"4" class=​"ui-draggable">​</div>​ 
] 

jquery.min.js:4 

Uncaught TypeError: Object function() { 
    var i; 
    var newObj = (this instanceof Array) ? [] : {}; 
    for (i in this) { 
    if (i == 'clone') continue; 
    if (this[i] && typeof this[i] == "object") { 
     newObj[i] = this[i].clone(); 
    } else newObj[i] = this[i] 
    } return newObj; 
} has no method 'replace' 

起初我還以爲元素對象中的括號可能表示一個數組,但似乎這只是一個jQuery對象上的符號。

該元素動畫正確,如果我刪除.animate函數,只需使用.css設置所有值,就不會出錯。

任何想法?

+0

我越讀越你的問題,我越來越困惑...所以它動畫適當;如果你用'css()'設置它的值就可以。那麼它什麼時候拋出錯誤?在'console.log'上? – Skyrim

+0

在進一步的調查中,我發現使用'element.css('background','red')設置css屬性;'沒有錯誤,但是'element.css({'background':'red'}) ;'拋出相同的未被捕獲的TypeError – rainbowFish

回答

1

您可能需要添加$(element)。儘管如此,很難說實際上你是如何調用這個函數的。

1

讓我做一個瘋狂的猜測。 認爲:

Object function() { 
    var i; 
    var newObj = (this instanceof Array) ? [] : {}; 
    ...... 

可能是你自己的功能,已經被寵壞對象的命名空間。督察地方在你的源代碼中 你正在做如:

Object.prototype.myclone = function() { ... } 

現在.fn.animate $(道具,...)將挑選起來,在對週期

for(p in prop) { .... 

因爲道具只是常規對象:

{ height: 0, width: 0, top: 0, left: 0 } 

,並從上,你的「myclone」有它自己的生命之後,你看到的失敗可能會很長。 我可以給你的最好的答案是'grep newObj。*'你的源文件和你的所有庫。 只是讓我們知道,如果這是目標拍攝...

相關問題