jQuery的生活()可与以下和,但不与1.9.1或2.0的jQuery 1.8.3(jQuery

2019-10-29 11:59发布

我一直在使用http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js现在一段时间,一切都已经很好,但1.8.3有很老,所以我”已经决定迁移到最新的jQuery。 突然,几件事情停止工作: 流沙插件和我自己的jQuery代码部分(显示滑块的每张幻灯片下更多的数据)。

你能帮我搞清楚什么是错的? 或者,也许它不值得移动到jQuery的版本1.8.3以上? 检查的jsfiddle。

HTML:

<a href="#" class="show" data-show="first">SHOW</a>
<a href="#" class="show" data-show="second">SHOW</a>

<div id="first">First paragraph.</div>
<div id="second">Second paragraph</div>

JS:

jQuery(".show").live("click", function (e) {
    var slide = '#' + jQuery(this).data('show');
    jQuery(slide).slideToggle();
    e.preventDefault();
});

CSS:

div { display: none; }

这里有一个工作的jsfiddle: http://jsfiddle.net/ABrna/

试着改变了jQuery 1.9.1或2.0和命中运行。 脚本停止工作。 为什么?

Answer 1:

因为jQuery的1.7 .live()方法已弃用,在1.9已被删除。

http://jquery.com/upgrade-guide/1.9/#live-removed



Answer 2:

在jQuery 1.7的,所述.live()方法被弃用。 使用。对()附加的事件处理程序。 旧版本的jQuery的用户应使用.delegate()优先于.live()。

文档 。



Answer 3:

相当于.live()使用代表团.on()是:

jQuery(document).on("click",".show", function (e) {
    var slide = '#' + jQuery(this).data('show');
    jQuery(slide).slideToggle();
    e.preventDefault();
});

但你不应该设定代表团在文档的水平,但改用最接近的静态容器。



Answer 4:

jQuery的2.0弃用直播功能。 你可以找到更多信息http://blog.jquery.com/2013/04/18/jquery-2-0-released/



文章来源: jQuery live() works with jQuery 1.8.3 & below but not with 1.9.1 or 2.0