2012-03-22 41 views
0

所有, 我已經得到了以下JS小提琴:http://jsfiddle.net/HHtBX/11/查找下一個框類和關閉

我想基本上關閉所有打開的其他框。所以在做了onClick和Toggles之後,我嘗試關閉其他所有東西。

切換部分工作正常,但我無法關閉打開的框。任何想法如何實現這一目標?

謝謝!

+0

你能不能給我們一些代碼來看看,你的問題是模糊的。沒關係......呃:-) – 2012-03-22 03:35:13

+0

@NathanBunney我加了一個JS小提琴,它有我想要的所有代碼 – user1048676 2012-03-22 03:36:34

+0

是的,那是編輯! :-) – 2012-03-22 04:20:37

回答

0

在onclick事件中隱藏所有展開的項目(帶有類框)。

$(".trigger").click(function() { 
    $(".box").slideUp(); 
    $(this).toggleClass("active").next().slideToggle('slow'); 
    return false; 
}).find(".box").next().slideToggle('slow'); 

這裏是工作樣例:http://jsfiddle.net/HHtBX/13/

0
$(".tb-toggle").each(function(){ 
    $(this).find(".box").hide(); 
}); 

$(".trigger").click(function() { 
    $(".tb-toggle").each(function(){ 
     $(this).find(".box").hide(); 
    }); 

    $(this).toggleClass("active").next().slideToggle('slow'); 
    return false; 
}).find(".box").next().slideToggle('slow'); 
0

嘗試

$(".trigger").click(function() { 
    $(".box").slideUp('slow'); 
    $(this).toggleClass("active").next().slideToggle('slow');  
    return false;  
}); 

+0

@ArmritpalSingh謝謝,如果我點擊一個已經打開的關閉它,然後再打開它。我怎樣才能防止這種情況發生? – user1048676 2012-03-22 03:41:36

1

這個怎麼樣

$(".trigger").click(function() { 
    $(this).toggleClass("active").next().slideToggle('slow', function(){ 
     $('.box').not(this).slideUp('slow');  
    }); 
    return false; 
    }); 
0

http://jsfiddle.net/HHtBX/14/試試這個,

var next=$(this).toggleClass("active").next(); 
    next.slideToggle('slow'); 
    $('.box:visible').not(next).slideToggle('slow'); 
0

你想這一次打開時可以隱藏所有其他框?

$(".tb-toggle").each(function(){ 
    $(this).find(".box").hide(); 
}); 

$(".trigger").click(function() { 
    $(this).toggleClass("active").next().slideToggle('slow'); 
    $(".trigger.active").not(this).removeClass("active").next().slideUp('slow'); 
    return false; 
}).find(".box").next().slideToggle('slow'); 

我把它放在小提琴http://jsfiddle.net/HHtBX/18/