2011-05-14 100 views
6

我正在使用jQuery作爲按鈕單擊上的滑塊效果。我的代碼是:Jquery滑塊效果

$(document).ready(function() { 

    $("#mybutton").click(function() { 
     $("#slidemarginleft").hide("slide", { direction: "down" }, 1000); 
}); 
}); 

當我點擊該按鈕,會出現一個JavaScript錯誤:

f.easing[e.animatedProperties[this.prop]] is not a function 
+1

如何任何人都會回答,如果你沒有說你正在使用什麼滑塊,以及這是哪種瀏覽器。你是否在不同的瀏覽器中試過它,看它是否是瀏覽器特定的? – 2011-05-14 04:37:58

回答

13

的代碼片段他提供的是直接從jQuery UI documentation的:(!D'OH)

$("div").click(function() { 
    $(this).hide("slide", { direction: "down" }, 1000); 
}); 

我剛剛得到這個錯誤,而且jQuery UI的腳本未加載問題被。 jQuery UI是緩動動畫所必需的。

嘗試增加這個,看它是否解決了問題:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script>  
+0

是的,只是包括jquery-ui,它修復了這個問題。非常感謝你 – Silentbang 2012-11-23 22:22:38

+0

也適用於任何版本。我有1.7.1。謝謝! – 2015-08-06 21:56:34

0

我覺得現在的問題是要傳遞到隱藏方法的第二個參數。從Hide()上的jQuery文檔中,它會顯示:

duration一個字符串或數字,確定動畫運行的時間。
easing一個字符串,指示將哪個緩動函數用於轉換。
回調一個動畫完成後調用的函數

第二個參數是一個javascript對象,而不是字符串。它試圖找到一個稱爲{方向:「向下」}並且沒有任何運氣的緩動函數。 jQuery庫中唯一的緩動實現是默認的,稱爲swing,並且以恆定的速度前進,稱爲線性。你也有第三個參數看起來像一個持續時間,它應該是第一個參數。

我也想知道爲什麼你使用hide()方法來做一個jQuery幻燈片而不是slideToggle()方法,或者只是根據需要使用slideDown()或slideUp()。

0

假設你想達到隱藏元素具有與「滑下」運動的影響,也許嘗試這樣的事情...

演示:http://jsfiddle.net/wdm954/Frumm/3/

$('#button').click(function() { 
    var h = $('#slide').height(); 
    $('#slide').animate({ height: 0, marginTop: h+"px" }, 1000, function() { 
     $(this).hide(); 
    }); 
}); 
0

這個錯誤也可以由一個無效的效應值造成的。例如:$(this).hide("slid", {}, 1000);有效的效果值爲:'blind', 'clip', 'drop', 'explode', 'fold', 'puff', 'slide', 'scale', 'size', 'pulsate'.

See here

0

另一個原因可能是,如果一個有包含了緊湊自身的寬鬆插件jQuery插件,有效取代最新的緩解功能。

人們可以在所有的JS文件中搜索此方法找到這樣的「罪犯」:

Query.extend({easing:{