在jQuery for 2 div中切换效果

时间:2014-10-30 06:58:30

标签: jquery

我做了一个jquery切换效果。当我单击一个div时,它会切换,当我单击另一个div时,它也会切换但两个都打开。所以我的问题是,如果我打开其中一个,那么第二个div将自动关闭。 My demo link is here

$(document).ready(function() {
   $('.top').each(function(index) {
      $(this).on("click", function(){
         $('.read:eq(' + index + ')').slideToggle("fast");
      });
   });
});

$('.box').click(function (e) {
   $( '#' + $(this).data('toggleTarget') ).slideToggle(300);
});

2 个答案:

答案 0 :(得分:0)

您需要slideUp()个其他div。你也不需要迭代它们来设置click事件。使用:

 $('.top').click(function(index){
           $('.read:not(:eq('+$('.top').index(this)+'))').slideUp();
           $('.read:eq(' + $('.top').index(this) + ')').slideToggle("fast");
     });
 });

<强> Working Demo

答案 1 :(得分:0)

不要尝试将事件绑定在循环结构中。

尝试,

$(document).ready(function () {
    $('.top').on('click', function () {
        $('.read').not($('.read:eq(' + $('.top').index(this) + ')').slideToggle(300)).slideUp(300);
    });
});

DEMO