0

我正在建立一个使用 Nivo Slider 的网站。起初,它运作良好。但是昨天,当我再次尝试时,它突然停止移动。在我发现这个问题之前,我还没有改变任何东西。我查看了控制台,有一个 javascript 错误,上面写着:

未捕获的类型错误:对象 [object Object] 没有“live”方法

当我尝试查看 jquery.nivo.slider.js 时,错误出现在 $('a.nivo-prevNav', slider) 上,如下所示:

$('a.nivo-prevNav', slider).live('click', function(){
    // function's content
});

使用谷歌的检查元素功能,我搜索页面并在那里找到。

那有什么问题?为什么它突然停止移动?任何帮助,将不胜感激。

4

4 回答 4

3

Nivo Slider 需要 jQuery 才能工作。在您的网站上,您像这样引用 jQuery

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

这是非常危险的,因为最新版本会不断变化。从 jQuery 文档中可以看出

http://api.jquery.com/live/

自 jQuery 1.7 起,live 函数已被弃用。查看未缩小的 jQuery 源代码

http://code.jquery.com/jquery-latest.js

似乎该功能不再存在,这就是您收到错误的原因。

解决方案:将 jQuery 与特定版本绑定 - 可能您可以从 Nivo Slider 文档中找到您需要的版本。一些旧版本的 jQuery 可以在这里找到:http: //jquery.com/download/

于 2013-01-15T15:23:08.457 回答
2

在您使用的 jQuery 版本 1.9 中,该live()功能实际上已被弃用:http ://api.jquery.com/live/

我猜你可能需要等待 Nivo 更新他们的源来支持最新的 jQuery,你可以下到 jQuery 1.7,或者自己修改 Nivo 源。

于 2013-01-15T15:23:11.957 回答
0

在 nivo 滑块的 js 文件中用 .on() 替换所有 .live() 对我有用。我的 jquery 是 1.9.1 版本。

于 2014-05-05T16:24:55.073 回答
0

现在有一个新版本的 Nivo Slider (3.2),它使用 .on 而不是 .live。

或者使用旧版本的 jQuery(1.7.1 为我们工作)

于 2013-01-17T05:48:24.147 回答