2012-02-29 14 views
2
ではなく、外のコード

を "スライド":あなたはそれだけでslidetogglesをトグルではなくspan.faqlinkをクリックした場合jqueryのslideToggle()ない相続人

$('span.faqanswer').hide(); 
$('strong.faqlink').css('cursor','pointer').click(function(){ 
    $(this).parent().find('span.faqanswer').slideToggle(); 
}); 

を。もう一度クリックすると滑り止めが解除されます。 これはどのプロセスでも発生します。滑り止めはちょうどトグルして、滑り止め滑り止めは...

答えて

7

を削除するスタイルを与えるjQueryのアニメーションがheightwidthを有する素子に依存しています。 spanはインライン要素なので、これらのディメンションは設定または設定できないため、アニメーションは機能しません。

ディスプレイがinline-blockに設定されており、アニメーション表示が可能なため、スライドアップ中に動作します。

spandivにラップし、マークアップを変更できる場合はdivを代わりにスライドすることをお勧めします。

の作業のデモは - http://jsfiddle.net/ShankarSangoli/yTeAY/

0

あなたが水平方向の要素スライドを持ってしようとしている場合は、slideToggle()を使用しないでください。 animate()を使用してください。

http://api.jquery.com/slideToggle/

.slideToggle()メソッドは、マッチした要素の高さをアニメーション化。これにより、ページ下部のが上下にスライドしてと表示され、アイテムを表示または隠蔽しているように見えます。

それ以外の場合は、@ ShankarSangoliと言って、インライン要素をラップします。