2013-02-23 69 views
2

我有一個問題,我無法追查。我使用的是Revolution Slider,我不斷獲取jQuery的錯誤:jQuery Uncaught TypeError與主題衝牀革命滑塊

▼ Uncaught TypeError: Cannot read property 'length' of undefined (repeated 86 times) 

    p.extend.each       jquery-1.8.2.min.js:2 
    a.fn.cssAnimationRemove  jquery.themepunch.plugins.min.js:18 
    (anonymous function)  jquery.themepunch.plugins.min.js:18 

的問題是this page,我相信這是造成奇怪的問題,其中當幻燈片更改圖片不完全消失。它將照片留在那裏,然後突然消失。就像這樣:

它給我添麻煩,我似乎無法追查。有什麼建議麼?

+0

該庫是否提供非縮小版本? – Ohgodwhy 2013-02-23 23:25:28

+0

@Ohgodwhy JS文件之一。 – daviesgeek 2013-02-23 23:27:32

+0

嘗試使用該文件,它會給你一個更可讀的錯誤。 – Ohgodwhy 2013-02-23 23:52:51

回答

3

經過美化jquery.themepunch.plugins.min.js並逐步使用Chrome的網絡檢查器後,我能夠找出問題的原因。

正在通過調用jquery's each函數在未定義的對象上使用它。

我不會推薦固定或改變的代碼,你不擁有,但現在你可以通過只在一個不確定的檢查將在cssAnimationRemove功能修復bug:

美化,原有的功能外觀像這樣:

a.fn.cssAnimationRemove = function() { 
    var b = this; 
    var c = b.data("cssAnimations"); 
    var d = b.data("identity"); 
    a.each(c, function(a, b) { 
     c[a] = b.splice(d + 1, 1); 
    }); 
    b.data("cssAnimations", c); 
}; 

修改後的修訂版本只需要插入一個未定義的檢查。它會是這個樣子:

a.fn.cssAnimationRemove = function() { 
    var b = this; 
    var c = b.data("cssAnimations"); 
    var d = b.data("identity"); 
    if (typeof c !== "undefined") { 
     a.each(c, function(a, b) { 
      c[a] = b.splice(d + 1, 1); 
     }); 
    } 
    b.data("cssAnimations", c); 
}; 

我們遇到了同樣的問題,購買包括該版本的滑塊(我懷疑是舊版本,作爲革命滑塊網站上的文件不是一個主題後,與我們在本地的文件相同)。

+0

甜!我將不得不做出這些改變並回來接受它!非常感謝喲!我只是放棄了,所以我很高興你明白了。 :d – daviesgeek 2013-04-17 05:03:16