jquery 2.1.4切换问题

时间:2015-07-21 04:43:31

标签: javascript jquery toggle

我在我的项目中使用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");
        });

3 个答案:

答案 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 docstoggle方法通常使用持续时间参数和回调函数调用(不是您提供的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()方法。不同之处在于传递的参数集。