Javascript 滑动转换在js中不相互侦听

Javascript 滑动转换在js中不相互侦听,javascript,Javascript,我有一个js转换无法解决。有三个链接,蓝色/绿色/红色,当您选择其中一个链接时,色样将滑入向上位置。再次按下该链接,使色样滑入向下位置 如何让每个样例在滑入向上位置之前将所有其他样例滑入向下位置 // When the DOM is ready, initialize the scripts. jQuery(function( $ ){ // Get a reference to the container. var container = $( ".container" ); // Bin

我有一个js转换无法解决。有三个链接,蓝色/绿色/红色,当您选择其中一个链接时,色样将滑入向上位置。再次按下该链接,使色样滑入向下位置

如何让每个样例在滑入向上位置之前将所有其他样例滑入向下位置

// When the DOM is ready, initialize the scripts.
jQuery(function( $ ){

// Get a reference to the container.
var container = $( ".container" );

// Bind the link to toggle the slide.
$( "a" ).click(
function( event ){
// Prevent the default event.
event.preventDefault();

// Toggle the slide based on its current visibility.
if (container.is( ":visible" )){

// Hide - slide up.
container.slideUp(500, function(){ $('').show(); });
} else {

// Show - slide down.
container.slideDown(500, function(){ $('').hide(); });
}
}
);

});

这是一个快速解决方法。我相信有一个更优雅的方式,但似乎工作

只需更改以下内容:

function slider(v) {
    colors = {
        'blue':'blue2',
        'red' :'red2',
        'green':'green2'
    }
    var confirm = document.getElementById("target");
             if (colors.hasOwnProperty(v)){
                 setTimeout(function(){target.className = colors[v]},500);
              }else {target.className = "chart";}
 }
在当前具有if(..is(“:visible”)的位置替换以下内容。 我的意思不是在代码的底部,只是在代码中的下面的子部分

if (container.is( ":visible" )){
// Hide - slide up.
    container.slideUp(500,function(){$().hide()});
    setTimeout(function(){
        container.slideDown(500, function(){ $('').show(); })
    },500);

}else{
    container.slideDown(500,function(){$().hide()})

}

我为您的JSFIDLE提供了一个简单的解决方案:

所有这些都在fiddle中,但它使用数据属性来切换类,而不是onClick属性

// Bind the link to toggle the slide.
$( "a" ).click(function( event ){
    // Prevent the default event.
    event.preventDefault();
    var $this = $(this);
    var $target = $("#target");

    if ($target.attr("class") === $this.attr("data-color")) {
        container.slideUp(500);
    } else {
        // Hide - slide up.
        container.slideUp(500, function(){
            $target.attr("class", $this.attr("data-color"));
            // Show - slide down.
            container.slideDown(500);
        });
    }
});

我为你添加了一个新的链接,让你看看我在我这边看到了什么。如果你立即开始点击一堆,超时会变得非常糟糕。我几乎有了一个解决方案,然后看到你发布了这个,放弃了,退出了…真的很遗憾,现在你给我的建议将是理想的,但我需要它在10天内在if语句中工作所有的选项都是src img,没有一个是数据颜色。如果你能修改它,你的代码将是理想的。