我在我的项目中使用Jquery 1.7。所以最近我升级到了jquery 2.1.4。
以下代码现在不能正常工作,但早期版本的旧版本工作正常。 2.1.4支持切换,请告诉我以下代码中的错误。
jQuery('#show-hide-filter-text').toggle(function(){
jQuery(this).text(hideTxt);
jQuery('#filterListDiv').slideDown("medium");
}, function(){
jQuery(this).text(showTxt);
jQuery('#filterListDiv').slideUp("medium");
});
答案 0 :(得分:1)
toggle
的形式是removed in jQuery 1.9。您可以使用简单的click
处理程序替换它:
jQuery('#show-hide-filter-text').on("click", function() {
var $this = jQuery(this),
toggled = !!$this.data("toggled");
if (toggled) {
$this.text(showTxt);
jQuery('#filterListDiv').slideUp("medium");
} else {
$this.text(hideTxt);
jQuery('#filterListDiv').slideDown("medium");
}
$this.data("toggled", !toggled);
});
答案 1 :(得分:0)
根据the docs,toggle
方法通常使用持续时间参数和回调函数调用(不是您提供的2个函数)。
工作替代方案可能类似于以下
var hidden = false;
jQuery('#show-hide-filter-text').toggle(
"medium",
function() {
if (!hidden) {
jQuery(this).text(hideTxt);
jQuery('#filterListDiv').slideDown("medium");
} else {
jQuery(this).text(showTxt);
jQuery('#filterListDiv').slideUp("medium");
}
}
);
答案 2 :(得分:0)
这种情况正在发生,因为您使用的toggle()方法是事件处理套件的一部分,并且在1.8版中已弃用。 您可以使用作为效果套件一部分的toggle()方法。不同之处在于传递的参数集。