jQuery切换不透明度

jQuery切换不透明度,jquery,toggle,opacity,fadeto,Jquery,Toggle,Opacity,Fadeto,正在尝试使不透明度切换。基本上,列表项设置为零不透明度,从而保持其高度。单击列表子类别标题时,空列表区域将下拉列表项的深度,然后切换“不透明度”以显示列表元素。再次单击子类别列表标题时,列表项的不透明度将褪色回零,然后列表区域将折叠。需要将列表项保留在那里以供使用,因此使用不透明方法,而不是从DOM中删除它们的隐藏、隐藏切换或类似函数。 ​当前,不透明度开关出现故障,开关闪烁。我更新了您的设置。它能解决你的问题吗 $(document).ready(function(){ $('.list l

正在尝试使不透明度切换。基本上,列表项设置为零不透明度,从而保持其高度。单击列表子类别标题时,空列表区域将下拉列表项的深度,然后切换“不透明度”以显示列表元素。再次单击子类别列表标题时,列表项的不透明度将褪色回零,然后列表区域将折叠。需要将列表项保留在那里以供使用,因此使用不透明方法,而不是从DOM中删除它们的隐藏、隐藏切换或类似函数。

​当前,不透明度开关出现故障,开关闪烁。

我更新了您的设置。它能解决你的问题吗

$(document).ready(function(){
$('.list li.expandable ul').hide();
$('.list li.expandable ul').css({ opacity: 0 });;
$('.expandable').click(function(){
    if ($(this).find("> UL").is(":visible")) {
        $(this).find("> UL").fadeTo(2000, 0, function() {
            $(this).slideToggle("slow");
        });
    } else {        
        $(this).find('> ul').slideToggle('slow', function() {
            $(this).fadeTo(2000, 1);
            //return false;
        });
    }
});
});

通过缓存
$(this),可以稍微改进它。在局部变量中查找(“>UL”)
。+1供您评论。在这一点上,你可以把它变成一个插件-D
​$(document).ready(function(){
    $('.list li.expandable ul').hide();
    $('.list li.expandable ul li').css({ opacity: 0 });;
    $('.expandable').click(function(){
        $('#id-1.expandable ul').slideToggle('slow');
//      $(this).toggleClass('toggle-arrow');
        $(this).toggle(function() {
//            $('.list li.expandable ul li').stop();
            $('.list li.expandable ul li').fadeTo(2000,1);
            return false;
              },
        function() {
//            $('.list li.expandable ul li').stop();
            $('.list li.expandable ul li').fadeTo(2000,0).delay(500);
            return false;
         }); 
        return false;
    });
});
$(document).ready(function(){
$('.list li.expandable ul').hide();
$('.list li.expandable ul').css({ opacity: 0 });;
$('.expandable').click(function(){
    if ($(this).find("> UL").is(":visible")) {
        $(this).find("> UL").fadeTo(2000, 0, function() {
            $(this).slideToggle("slow");
        });
    } else {        
        $(this).find('> ul').slideToggle('slow', function() {
            $(this).fadeTo(2000, 1);
            //return false;
        });
    }
});
});