2012-02-29 18 views
2

继承人的代码:的jQuery的slideToggle()不是 “滑动体” 中,但出

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

如果你点击它只是切换的span.faqlink但不slidetoggles。如果你再次点击幻灯片。 这发生在任何过程中。下滑只是切换和upslide slidetoggles ...

回答

7

jQuery的动画依赖于有heightwidth的元素。由于span是内嵌元素,因此它没有设置或设置这些尺寸,所以动画将无法使用。

它向上滑动,因为显示设置为inline-block,它可以动画。

我建议您将span包装在div中,然后滑动div,而不是改变标记。

工作演示 - http://jsfiddle.net/ShankarSangoli/yTeAY/

0

如果你想在一个水平滑动元素,不要使用slideToggle()。使用animate()

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

的.slideToggle()方法动画匹配元素的高度。这导致页面的较低部分向上或向下滑动,似乎显示或隐藏项目。

否则,请按@ShankarSangoli的说法,并包装内嵌元素。