简体   繁体   English

如何使jquery与slidetoggle?

[英]how to make slidetoggle with jquery?

I am trying to use slide-toggle effect of j-query but getting issue with HTML i have . 我正在尝试使用j-query的滑动切换效果,但是我遇到了HTML问题。 Please take a look -: 请看一下 -:

        <li class="active Sub-Tag">Pork Ham</li>                                
        <li class="active-in active"><a onclick="call_content(146);" href="#">&gt; Double Smoked Ham</a></li>                                                           
        <li class="active-in active"><a onclick="call_content(147);" href="#">&gt; Prime Ham</a></li>                                                           
        <li class="active-in active"><a onclick="call_content(148);" href="#">&gt; Smoked Ham</a></li>  

        <li class="active Sub-Tag">Pork Lyoner</li>                             
        <li class="active-in active"><a onclick="call_content(149);" href="#">&gt; Pork Olive Lyoner</a></li>                                                           
        <li class="active-in active"><a onclick="call_content(150);" href="#">&gt; Pork Paprica Lyoner</a></li>                                                         
        <li class="active-in active"><a onclick="call_content(151);" href="#">&gt; Pork Pepper Lyoner</a></li>                                                          
        <li class="active-in active"><a onclick="call_content(152);" href="#">&gt; Pork Pista Lyoner</a></li>       

        <li class="active Sub-Tag">Pepperoni</li>                               
        <li class="active-in active"><a onclick="call_content(153);" href="#">&gt; Pork Pepperoni</a></li>   

I want to show the toggle effect on Pork Ham , Pork Lyoner , Pepperoni. 我想展示对猪肉火腿,猪肉里昂,意大利辣香肠的切换效果。

Advise me how to do without changing the html and classes. 建议我如何做而不更改html和class。

This is how I did it: 这是我的方法:

$('.Sub-Tag').click(function(){
    var current = $(this);

    while(current.next().hasClass('active-in') != false){
        current = current.next();
        current.slideToggle();
    }
});

JSFiddle demo here JSFiddle演示在这里

You can try slideToggle better than toggle: 您可以尝试使用slideToggle比切换更好:

$('.active.Sub-Tag').slideToggle(timeout);

You also need to edit html, because slidetoggle works maximizing height of an element. 您还需要编辑html,因为slidetoggle可以最大化元素的高度。 For example: 例如:

<div class="slided">A long content here....</div>
<button id="button">Click</button>
<style> .slided {display:none;}</style>
<script>
$('#button').on('click', function() {
    $('.slided').slideToggle(300);
});
</script>

You can see this code working on this fiddle: 您可以看到此代码正在处理这个小提琴:

https://jsfiddle.net/y8sqm7ww/ https://jsfiddle.net/y8sqm7ww/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM