2

我遇到了一个我无法追踪的问题。我正在使用Revolution Slider,并且不断收到 jQuery 错误:

 ▼ 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  

问题出在此页面上,我相信它会导致奇怪的问题,即幻灯片更改时图片没有完全消失。它把图片留在那儿,然后突然消失了。像这样:

它只给我带来了麻烦,我似乎无法找到它。有什么建议么?

4

1 回答 1

3

在美化jquery.themepunch.plugins.min.js并逐步使用 Chrome 的网络检查器后,我能够找到问题的原因。

在未定义的对象上调用jquery 的 each函数正在使用它。

我不建议修复或更改您不拥有的代码,但现在您可以通过对 cssAnimationRemove 函数进行未定义检查来修复错误:

美化后,原始函数如下所示:

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);
};

在购买了包含此版本滑块的主题后,我们遇到了同样的问题(我怀疑这是旧版本,因为 Revolution Slider 网站上的文件与我们本地的文件不同)。

于 2013-04-15T10:42:45.823 回答