改变DIV的jQuery

时间:2013-06-17 09:23:01

标签: jquery

这是我的代码:

$('.expand-1').click(function(){
   $('.content-1').slideToggle('slow');
   $('.expanded-1').toggleClass('expanded-4');  
});

$('.expand-2').click(function(){
   $('.content-2').slideToggle('slow');
   $('.expanded-2').toggleClass('expanded-5');      
});

$('.expand-3').click(function(){
   $('.content-3').slideToggle('slow');
   $('.expanded-3').toggleClass('expanded-6');      
});

基本上当你单击它时它会扩展框,但是当我点击下一个框时,其余的仍然保持打开状态,我正在寻找的是一种方式,当Box4或Box3仍然是(Box1)时打开它们将关闭并仅打开Box1,如果Box2单击,则Box1和Box3将保持关闭,依此类推。

此页面上只有3个Box。

5 个答案:

答案 0 :(得分:1)

我建议你试试这个:

$('[class^="expand"]').on('click', function () {
   var klicked = this.className.slice(-1);
   var num = Math.floor(klicked)+3;
   $('[class^="content-"]').hide();
   $('[class^="content-'+klicked+'"]').slideToggle('slow');
   $(this).toggleClass('expanded'+num);
});

答案 1 :(得分:0)

您可以在框中添加通用类,例如box,然后执行以下操作,

$(".box").click(function(){
    $(".box").hide();
    $(this).slideDown('slow');

    //Do something else with the element
});

答案 2 :(得分:0)

将类.content添加到您的所有内容和

$('.expand-1').click(function(){
    $('.content').not($('.content-1')).slideUp('slow'); // Close all open content except 1 
    $('.content-1').slideToggle('slow');
    $('.expanded-1').toggleClass('expanded-4'); 
});

答案 3 :(得分:0)

最好的方法是关闭所有方框,然后打开你想要的方框。如果您使用所有框的类来扩展/关闭框,那就更好了。

您的HTML应如下所示:

<div class="open">
  content 1
</div>
<div class="open">
  content 2
</div>
<div class="open">
  content 3
</div>

open将是触发器类。

$(document).ready( function(){
   $('.open').click(function() {
       $('.open').fadeOut('slow');
       $(this).fadeIn('slow');
   });
})    

答案 4 :(得分:0)

试试吧,

$('.expand-1').click(function(){
   $('.content-1').slideDown('slow');
   $('.content-2,.content-3').slideUp('fast');
   $('.expanded-1').toggleClass('expanded-4');  
});

$('.expand-2').click(function(){
   $('.content-2').slideDown('slow');
   $('.content-1,.content-3').slideUp('fast');
   $('.expanded-2').toggleClass('expanded-5');  
});

......