2015-07-21 88 views
0

我在我的項目中使用Jquery 1.7。所以最近我升級到jQuery 2.1.4。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

你能用HTML提供完整的代碼,所以我們可以看到它不起作用嗎? –

回答

0

發生這種情況,因爲你正在使用的切換()方法是事件處理套件的一部分,這是在1.8版本棄用。 您可改爲使用作爲效果套件一部分的toggle()方法。不同之處在於傳遞的參數集合。

1

該形式的toggleremoved 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); 
}); 
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"); 
    } 
    } 
);